- 博客(29)
- 收藏
- 关注
原创 模型实战——微调RoBERTa进行文本分类
本次我们实战的内容是微调RoBERTa并对新的数据集进行文本分类任务。首先这里我们简单讲解一下什么是文本分类任务:这里有一句话Sentence1:“我喜欢你。”我们可以很容易地判断出来这句话是积极的。同理,对于句子Sentence2:“我讨厌你。”我们也可以知道这句话是消极的。像上面这样把句子归到不同类别里面的做法就是文本分类。在本次实战中,我们将用10k条外卖数据对RoBERTa模型进行微调,并最终用自己新生成的一系列数据基于训练好的模型进行推理。
2024-05-31 14:35:17
2423
2
原创 Transformer Step By Step -- 一个完整的Transformer
在之前所有的文章的基础之上,今天我们将搭建一个完整的Transformer。今天我们将从头搭建一个完整的Transformer,包括训练过程和最终的验证过程。
2024-05-23 01:07:06
995
原创 NLP Step by Step -- 如何微调一个模型(1)
这很有效,但它的缺点是返回字典(字典的键是输入词id(input_ids) , 注意力遮罩(attention_mask) 和 类型标记ID(token_type_ids),字典的值是键所对应值的列表)。我们的标记函数(tokenize_function)返回包含输入词id(input_ids) , 注意力遮罩(attention_mask) 和 类型标记ID(token_type_ids) 键的字典,所以这三个字段被添加到数据集的标记的结果中。毫无疑问,我们得到了不同长度的样本,从32到67。
2024-04-30 21:16:35
959
原创 NLP Step by Step -- How to use pipeline
正如我们在中看到的那样,Transformers模型通常非常大。对于数以百万计到数千万计数十亿的参数,训练和部署这些模型是一项复杂的任务。此外,由于几乎每天都在发布新模型,而且每种模型都有自己的实现,因此尝试它们绝非易事。而🤗Hugging Face为我们创建了Transformer库,这个库的目标是提供一个API,通过它可以加载、训练和保存任何Transformer模型。这个库的主要特点是:易于使用:下载、加载和使用最先进的NLP模型进行推理只需两行代码即可完成。
2024-04-25 18:43:02
1168
原创 Transformer step by step--Multi Head Attention
想要讲清楚 𝑀𝑢𝑙𝑡𝑖 𝐻𝑒𝑎𝑑 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 ,我们要从以下几个方面入手:①从图形入手,讲清楚 𝑀𝑢𝑙𝑡𝑖 𝐻𝑒𝑎𝑑 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 在干什么;②从公式推导,讲清楚 𝑀𝑢𝑙𝑡𝑖 𝐻𝑒𝑎𝑑 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 怎么算;③从代码讲解,讲清楚 𝑀𝑢𝑙𝑡𝑖 𝐻𝑒𝑎𝑑 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 应该怎么用;
2024-04-24 22:00:46
578
原创 NLP step by step -- 了解Transformer
首先我们先看一下有关Transformer模型的发展历史,下面的图是基于Transformer架构的一些关键模型节点:图片来源于Hugging Face图片来源于Hugging Face于 2017 年 6 月推出。原本研究的重点是翻译任务。随后推出了几个有影响力的模型,包括2018 年 6 月:, 第一个预训练的 Transformer 模型,用于各种 NLP 任务并获得极好的结果2018 年 10 月:, 另一个大型预训练模型2019 年 2 月:, GPT 的改进(并且更大)版本。
2024-04-24 21:35:33
1688
1
原创 Transformer step by step--Masked Self-Attention
我们详细分析了 𝑀𝑢𝑙𝑡𝑖 𝑆𝑒𝑙𝑓 - 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛 ,但是其实看过论文的同学都会有一个问题——Transformer中的Decoder部分不是还有个掩码的操作吗,那是个什么玩意儿?图片来源于Attention is all you need论文今天这篇文章就是告诉大家:Decoder部分的掩码是个什么玩意儿怎么用简单的代码去实现这个掩码首先,我们先要有一个概念。
2024-04-23 20:20:09
787
原创 Vit Step By Step -- Define Datasets
在第二篇文章中,我们将教会大家如何自己定制化专属的数据集。这里我们用两个非常经典的数据集举例子,一个是MINIST,另一个是我们自己找的花分类数据集。
2024-04-23 19:59:38
1182
原创 Vit step by step -- Image 2 patch
在这里我们开一个新坑,这个新坑主要用来讲解的详细实现细节。关于Vision Transformer我们预计开四篇文章把它讲透,每篇文章我们都会代码和输入的样例。关于Vision Transformer的第一篇文章,我们就先实现一下Vision Transformer的第一步——如果把图片变成patches然后输入到Transformer的Encoder当中。图片来源于Vit原文首先我们再回顾一下Vit的原文的标题:图片来源于Vit原文。
2024-04-22 21:36:37
651
原创 Linux Tmux使用教程
本片文章为转载,原文链接地址如下:TmuxTmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。本文介绍如何使用 Tmux。
2024-04-22 21:28:46
1073
原创 Transformer step by step--Positional Embedding 和 Word Embedding
要把Transformer中的Embedding说清楚,那就要说清楚和。至于为什么有这两个Embedding,我们不妨看一眼Transformer的结构图。从上图可以看到,我们的输入需要在和的共同作用下才会分别输入给和,所以我们就分别介绍一下怎么样进行和。同时为了帮助大家更好地理解这两种方式,我们这里生成一个自己的迷你数据集。
2024-04-21 18:09:18
1570
1
原创 Transformer step by step--层归一化和批量归一化
如果我们此时还使用 𝐵𝑁 ,我们会发现后面两列特征依旧归一化后依旧为-1和0,即 𝐵𝑁 在此时并不能很好地观察并反应样本的差异。都是减去当前该样本的均值和方差,而不是像 𝐵𝑁 一样减去了整个 𝑏𝑎𝑡𝑐ℎ 的均值和方差(分母上都加上了一个 𝜖 ,这是防止分母为0)。𝑏𝑎𝑡𝑐ℎ 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛, 而是使用了 𝑙𝑎𝑦𝑒𝑟 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛。这里我们先直接给出 𝑏𝑎𝑡𝑐ℎ 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛 和 𝑙𝑎𝑦𝑒𝑟 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛 的计算公式。
2024-04-21 14:56:19
1392
1
原创 强化学习经典算法解析+自己复现(1.Reinforce)
在强化学习的算法中,有两大类算法,一类是基于策略的,一类是基于价值的,而REINFOCEREINFOCEREINFOCE就是典型的基于策略的算法。那什么叫作基于策略呢,为什么强化学习又要分成这两种算法呢?简单来说,强化学习的最终目的是让agentagentagent能够获得足够大的rewardrewardreward。那么我们为了让agentagentagent获得最大的rewardrewardreward,我们就要去找到好的策略,因为基于好的策略所选出来的动作是可以得到较大的rewardrewardre
2022-05-31 22:36:22
1303
原创 pytorch的backward求导
问题描述:相信所有熟悉DL的人都会非常熟练的运用如下的三行代码optimizer.zero_grad()loss.backward()optimizer.step()但是我也相信真正能够理解其中机制的人很少,尤其是backward()这一步到底是怎么运行的。先验知识首先但凡学过DL的人都知道深度学习是利用梯度下降法,通过求梯度来进行更新。在看书上的理论部分时其实很好懂,其实就是一个求导然后求梯度,然后利用梯度下降更新梯度。但是每次只靠这三行代码,就看到试验的准确率越来越高时,总觉得神经网络
2022-05-06 18:10:29
622
原创 kaggle实战4.1--时间序列预测问题
这个时间预测序列对应的是kaggle上Time Series的course,course的连接贴在下方时间序列预测kaggle教程本文使用的数据集的地址:图书销售量数据集第一课 线性回归和时间序列引言预测可能是机器学习在现实世界中最常见的应用。企业预测产品需求,政府预测经济和人口增长,气象学家预测天气。对未来事物的理解是整个科学、政府和行业的迫切需要(更不用说我们的个人生活了!),这些领域的从业者正越来越多地应用机器学习来满足这一需求。时间序列预测是一个具有悠久历史的广泛领域。本课程的重点是将
2022-04-13 14:12:39
2518
原创 更改jupyter的默认文件路径
问题描述因为jupyter默认都是从C盘的jupyter打开,并且所有的文件也都是保存在C盘下面,所以抱着万物皆可调路径的想法,在优快云上搜了一下相关的问题解决方法这次解决的方法主要是结合其他博主的回答,但因为自己在按照其他博主的步骤操作的时候遇到了一些问题,所以也会加上自己的解决方案。第一步在命令行输入以下语句输完之后在C:\Users\Administrator.jupyter下没有生成一个对应的config文件第二步之后打开该文件,找到如下语句#c.NotebookApp.not
2022-03-08 16:23:49
6616
1
原创 一口气解决两个深度学习的恶心bug:)
就在刚刚,博主终于把自己项目中困扰了自己一个星期的bug给解决了,而且一口气连着解决了两个bug,收获颇多,心情无比的激动!!!所以趁现在对刚才一系列的操作还了熟于心,写下这篇博文,希望能对大家有所帮助。问题(1)描述就在一个星期当博主满怀期待的点击训练文件的run按钮时,出现了以下的bug相信很多做深度学习的同学在跑项目的时候都遇到过这个问题,那我遇到这个问题之后,第一时间就把这个问题直接复制到了优快云上,那么优快云上给我的答案是这样的根据这个答案,我们之所以会报错,是因为我们的datas
2022-02-21 22:27:39
688
原创 kaggle实战(二)泰坦尼克号生还人数预测
题目介绍今天我们来讲kaggle比赛中最经典,也是官方最推荐入门机器学习的一项比赛——预测泰坦尼克号的生存人数。那么这个比赛在哪找呢?首先我们找到competitions的页面,然后可以看到根据比赛的类型有很多分类,那么我们可以想入门的话就可以选择GettingStarted类型。那么我们在该类型中往下翻几页就可以找到这个比赛了。我们点开比赛之后,在其中的overview里的description中可以看到这个比赛的条件和要求。我们看到这段话的最后两句,“在该比赛中,我们需要你建立一个模型,利用
2022-02-20 19:09:22
1904
1
原创 Kaggle简单实战
Kaggle简单分类问题实战因为在准备下个学期的数模比赛,想着就拿Kaggle上的机器学习比赛练练手,熟悉一下sklearn库的一些算法。笔者也是由易入难,所以一开始选了一个比较简单的分类问题。比赛的题目也贴在了下方????。首先,我们在kaggle上参加一个比赛就要先去看比赛的要求和这个比赛提供的相关数据集。比赛要求和数据集如下图????我们可以从上图看到这是一个二分类问题,并且从我对数据集的形状输出也可以看到我们的数据都是40维的,并且我们最终要输出的应该是针对测试集给出的9000个标签
2022-02-13 15:13:15
2264
原创 如何安装labelme及如何用labelme进行图像语义分割
安装labelme首先labelme是一个基于python的深度学习图像标注工具,所以需要在conda的环境下进行下载,conda环境因为博主很早之前就下过了所以在这里就不再进行赘述了,直接从如何安装lebelme开始讲起。第一步,打开anaconda3 中的anaconda Powershell Prompt打开之后在...
2021-11-20 00:12:16
1718
原创 UserWarning: torch.range is deprecated and will be removed in a future release because its behavior
问题描述在自己尝试实现简单时序序列回归的时候用torch.range()函数生成了1000个时间,但是出现在Warning,简单翻译就是说range这个函数区间是双闭的,但arange()区间是左闭右开的,而双闭区间不符合python运算主流。问题解决根据上面的问题描述,我们把range(1,1000)换成arange(1,1001)就可以了问题原因这个问题是因为在计算机硬件中比较大小是一件很困难的事情,但是比较两个数是否相等就要方便很多。意思就是,当我用range函数时,我每一个数都要去比较是
2021-11-15 19:27:35
4910
原创 padding后面跟了两个参数怎么理解
问题描述之前在用Conv2d这个函数的时候padding这个参数都是设置为一个整数,但是最近遇到了这样一行代码。如图所示大家可以看到在上面的卷积函数中,padding后面跟的不再是一个具体的整数,而是接了一个元组(元组中数据类型依旧是整数)。当padding只是一个整数时大家应该能明白,在这里就不赘述,所以分享一下我自己对于这样一个操作的一些实验及其理解。相关理解实验是检验真理的唯一标准,所以话不多说,直接上实验的截图。这里首先我先设出了一个维度为4的tensor——a,用来模拟我们平常的输入
2021-11-03 14:12:22
1586
原创 同一目录下python import报错问题
问题描述这几天在跑一个注意力机制的项目,其中train的主函数在大文件夹下面,而其余的像dataloader和loss这样的文件在另一个子文件下。然后出现了import的错误。这是我train中import的src这个文件夹下其它文件的操作。那么这个src文件夹里的文件有这些这里可以看到我的model文件和attention文件确实是在同一文件夹下面,所以按理来说如果我需要在model这个文件中调用attention中的类,直接import attention就可以了。但是我这样操作之后会报错,说
2021-11-02 20:31:40
4973
5
原创 正态分布深入理解
这个学期在学概统,正态分布经常会有一些问题,所以本文就三个方面聊一聊正太分布是个怎么样的分布。μ和σ²在正态分布中的意义及几何演示中心极限定理普通正态分布如何化为标准正态分布(手写推导)μ和σ²在正态分布中的意义及几何演示μ在正态分布中的意思是该正态分布的期望(均值),σ在正太分布的意思是指该正太分布的方差。这些是书上最基本的概念,但其实当我们画出图之后我们可以深入地理解这两个参数的几何意义。上图是我将μ设置为0,σ设置为0.1的情况,我们可以看到此时概率密度函数的对称轴为x=0,最高点
2021-11-02 19:39:39
7510
原创 pytorch在pycharm中的环境配置问题
笔者在很久之前就装好了pytorch和cuda,并且在命令行输入相关指令时也都能成功实验,所以一直以为在用pycahrm的时候程序是在GPU上跑的。知道前一段时间在跑沐神的Alexnet的代码的时候,才发现自己pyachrm的环境配置没有设好,所有的代码还有在GPU上运行。如果成功安装了torch和cuda,在命令行中输入如下指令应该会返回True。但是我当时在pycharm中输入该指令时发现pyacharm返回的是False,我当时以为是因为自己装的cuda版本和pytorch版本不对应,但其实只要命
2021-10-24 19:07:54
1827
原创 深度学习小白的学习笔记(3)——线性回归模型的从零实现(含代码)
这两天学了线性回归模型。线性回归模型对于我们以后的机器学习十分重要,虽然简单,但是其中涉及到的权重(weight)和偏置(bias)的思想会贯穿整个深度学习。
2021-08-10 16:47:33
717
原创 深度学习小白的学习笔记(2)——机器学习框架
机器学习用来干嘛?在李宏毅老师的描述中,机器学习其实就是在为很多问题寻找一个方程式从而得到一个机器预测的答案。而这些方程式中又对应两大类不同的问题。第一种:Regression(回归): 这一类的函数最后会输出一个scalar(标量)。这里有一个非常简单的例子:在上面这个例子中,我们的任务是预测明天的PM2.5的值,而我们现在手头有的数据是今天PM2.5的值,今天的温度还有其他的一些影响因素。我们将已有的数据输入到函数f中,而函数f会输出一个标量,这个标量就是对明天PM2.5的预测值。第二种C
2021-08-07 10:56:55
874
原创 深度学习小白的学习笔记——day1(开张)
本人是南京某大学大一在读,因为大创弄的项目涉及到了深度学习和注意力机制方面的内容,所以目前正在学习相关的操作。之前导师给了一个用pytorch写的框架,所以就直接在B站上看了pytorch的相关内容,只能说可以跟着视频把代码敲下来并且可以成功运行,但是关于深度学习没有一个大体的了解,并且也不知道每一个层到底有什么用,所以现在又重新开始系统的进行学习。目前在看的课程是李宏毅老师的机器学习课,想先入门之后再去重学pytorch。现在利用优快云想记录一下自己学习的过程,同时也是对自己的一种监督吧。正好现在还是
2021-08-05 14:31:23
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人