- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 Pytorch训练代码框架
Pytorch训练代码框架前言自己在学习和coding的过程中,感觉每次搞一个模型,需要写一堆的过程代码(大部分是可复用的),有的时候还需要从之前或者各个博客cv一点代码,这样开发起来效率可能比较低,所以整理了一份相对来说比较全面的Pytorch建模&训练框架,一些简单的trick也整理放在了里面,方便取用。因为个人用NLP比较多,这个框架主要也是在预训练+微调这一范式下写的,但是想去掉预训练模型也很好改,就不多赘述了。代码框架不是很成熟,主要是从自己开发过程中进行一些总结,欢迎大家提iss
2022-03-21 19:37:56 2536
原创 Pytorch与深度学习训练trick实战(持续更新)
Pytorch与深度学习训练trick实战(持续更新)冻结参数def set_parameter_requires_grad(model, feature_extracting): if feature_extracting: for param in model.parameters(): param.requires_grad = Falsefeature_extract = Trueset_parameter_requires_grad(mode
2022-03-21 19:37:22 1976
原创 科学计算器
科学计算器完整代码及测试数据完整代码及测试数据问题简介完成一个科学计算器,相比简易计算器增加了一些三角函数和幂函数以及指数函数的计算。完成一个可以使用的科学计算器,需要满足支持下面的运算符。运算符解释运算符解释+1+1=2√开方. √4=2-2-1=1 or -1-2=-3(左括号*2 * 2 = 4)右括号/4 / 2 = 2!阶乘。3!=123=6lnln(e)=1,以e为底的对数log以2为底的对数。log(4)=
2021-12-23 21:41:33 884
原创 简易计算器-calculator
简易计算器完整代码及测试数据完整代码及测试数据问题简介完成一个简易版的计算器,需要满足"+、-、*、\、√"五种算术运算,并且支持’()'算法运算。Example:序号inputoutput解释v11+1+1+14符号优先级相同,先算前面再算后面v22-1*20先算乘除,再算加减v3(2-1)*22先算括号里面的数v4(2-1*2+14/2)+√910先算括号,再算其他,开方的优先级比乘除高v5(2+3)4+√9(1/2+
2021-12-23 10:46:20 597
原创 八数码问题-8puzzle
完整代码及测试数据完整代码及测试数据问题简介八数码:是指在3x3的矩阵中,其中有8个格子放置成1-8,剩下一个格子是空格。能够移动和空格相邻的格子到空格,直到这个矩阵满足每一行依次从左到右读取是有序,得到最后得到1-8有序,最后一个格子是空格。下图展示了一个案例:推广二维N×N的棋盘对于任意大小的二维N×N的棋盘:如何判断问题是否有解?结论先说结论:一个状态表示成一维的形式,求出:除0之外所有数字的逆序数之和,也就是每个数字前面比它大的数字的个数的和,称为这个状态的逆序。若两个状态的
2021-12-20 21:51:24 1883
原创 Pytorch与视觉竞赛入门5-PyTorch搭建对抗生成网络
Pytorch与视觉竞赛入门5-PyTorch搭建对抗生成网络对抗生成网络原理对抗生成网络通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。生成模型和判别模型的区别判别式模型求得P(Y|X),对未见示例X,根据P(Y|X)可以求得标记Y;生成式模型求得P(Y,X),对于未见示例X,要求出X与不同标记之间的联合概率分布,然后大的获胜。GAN组成GAN有两个网络,G(Generator)和D
2021-12-05 15:44:22 902
原创 Pytorch与深度学习自查手册4-训练、可视化、日志输出、保存模型
Pytorch与深度学习自查手册4-训练、可视化、日志输出、保存模型训练和验证(包含可视化、日志、保存模型)初始化模型、dataloader都完善以后,正式进入训练部分。训练部分包括:及时的日志记录tensorboard可视化log输入前向传播loss计算反向传播权重更新固定步骤进行验证最佳模型的保存(+bad case输出)日志记录利用logging模块在控制台实时打印并及时记录运行日志。from config import *im
2021-12-03 22:51:49 3155 2
原创 【DataWhale第31期组队学习-水很深的深度学习】优秀作业汇总
DataWhale第31期组队学习-水很深的深度学习学习链接https://datawhalechina.github.io/unusual-deep-learning/#/README搭配学习的视频链接https://www.bilibili.com/video/BV1iq4y197L4Task1优秀作业:针不戳队-L.N.:https://blog.csdn.net/qq_33866063/article/details/121317255JustForFun-恒者行远:https://l
2021-12-03 17:50:50 2650
原创 Pytorch与深度学习自查手册3-模型定义
Pytorch与深度学习自查手册3-模型定义定义神经网络继承nn.Module类;初始化函数__init__:网络层设计;forward函数:模型运行逻辑。class NeuralNetwork(nn.Module): def __init__(self): super(NeuralNetwork, self).__init__() self.flatten = nn.Flatten() self.linear_relu_stack =
2021-12-01 16:12:28 2130
原创 Pytorch与深度学习自查手册2-数据加载和预处理
Pytorch与深度学习自查手册2-数据加载和预处理数据加载DataSet类自定义一个继承 Dataset类的类 ,需要重写以下三个函数:__init__:传入数据,或者像下面一样直接在函数里加载数据;__len__:返回这个数据集一共有多少个item;__getitem__:返回一条训练数据,并将其转换成tensor。通常还会在其中增加一个collate_fn函数,用于DataLoader,使用这个参数可以自己操作每个batch的数据,比如说在自然语言处理的命名实体识别任务中,在该函数中对
2021-12-01 16:11:49 710
原创 Pytorch与深度学习自查手册1-张量、自动求导和GPU
Pytorch与深度学习自查手册1-张量、自动求导和GPU张量构造Tensordtype类型:dtype=torch.long,torch.float,torch.double常见的构造Tensor的函数:函数功能示例Tensor(sizes)基础构造函数torch.Tensor(4,3)tensor(data)类似于np.arrayx = torch.tensor([5.5, 3])ones(sizes)全1zeros(sizes)全0x
2021-12-01 16:11:16 516
原创 Pytorch与视觉竞赛入门3-使用Pytorch搭建经典网络
Pytorch与视觉竞赛入门3-使用Pytorch搭建经典网络VGG原理VGG16的结构图如下:LRN模块AlexNet中提出的局部响应归一化(LRN)(Krizhevsky等,2012),VGG的实验结果表明LRN对性能提升并没有什么帮助,而且还浪费了内存的计算的损耗。特点VGG16的突出特点是简单,体现在:卷积层均采用相同的卷积核参数卷积层均表示为conv3-XXX,其中conv3说明该卷积层采用的卷积核的尺寸(kernel size)是3,即宽(width)和高(heigh
2021-11-21 20:31:40 1180
原创 Pytorch与视觉竞赛入门2
Pytorch与视觉竞赛入门2PyTorch卷积层原理和使用参考资料:如何理解空洞卷积(dilated convolution)? - 谭旭的回答 - 知乎如何理解空洞卷积(dilated convolution)? - 刘诗昆的回答 - 知乎Pytorch之卷积层卷积尺寸计算不考虑空洞卷积,假设输入图片大小为 $ I \times I$,卷积核大小为 k×kk \times kk×k,stride 为 sss,padding 的像素数为 ppp,图片经过卷积之后的尺寸 $ O $ 如下:O
2021-11-08 15:07:41 342
原创 Pytorch与视觉竞赛入门1
Pytorch全连接层原理和使用参考资料:PyTorch快速入门教程二(线性回归以及logistic回归)Pytorch全连接网络矩阵乘法实现全连接层方法1:矩阵乘法x = torch.arange(0, 100, 0.01,dtype=torch.float32)y = (10 * x + 5 + np.random.normal(0, 1, x.size())).float()batch_size = 100w = torch.randn((1,), requires_grad=Tru
2021-11-04 23:07:33 302
原创 天池零基础入门NLP竞赛实战:Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类
Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类因为天池这个比赛的数据集是脱敏的,无法利用其它已经预训练好的模型,所以需要针对这个数据集自己从头预训练一个模型。我们利用Huggingface的transformer包,按照自己的需求从头开始预训练一个模型,然后将该模型应用于下游任务。完整代码见:NLP-hands-on/天池-零基础入门NLP at main · ifwind/NLP-hands-on (github.com)注意:利用Huggingface做预训练需要安装
2021-10-17 11:57:14 1132 2
原创 天池零基础入门NLP竞赛实战:Task4 基于深度学习的文本分类2.2-Word2Vec+TextCNN+BiLSTM+Attention分类
Task4 基于深度学习的文本分类2.2-Word2Vec+TextCNN+BiLSTM+Attention分类完整代码见:NLP-hands-on/天池-零基础入门NLP at main · ifwind/NLP-hands-on (github.com)模型架构模型结构如下图所示,主要包括WordCNNEncoder、SentEncoder、SentAttention和FC模块。最终需要做的是文档分类任务,从文档的角度出发,文档由多个句子序列组成,而句子序列由多个词组成,因此我们可以考虑从词的
2021-10-16 19:00:32 3674
原创 天池零基础入门NLP竞赛实战:Task4 基于深度学习的文本分类2-Word2Vec
Task4 基于深度学习的文本分类2-Word2Vec文本表示方法 Part2-2Word2Vec原理Word2Vec是轻量级的神经网络,其模型仅仅包括输入层、隐藏层和输出层,模型框架根据输入输出的不同,主要包括CBOW和Skip-gram模型。 CBOW的方式是在知道词wtw_twt的上下文wt−2,wt−1,wt+1,wt+2w_{t-2},w_{t-1},w_{t+1},w_{t+2}wt−2,wt−1,wt+1,wt+2的情况下预测当前词wtw_twt。而Skip-gram是在知
2021-10-16 18:59:15 288
原创 天池零基础入门NLP竞赛实战:Task4 基于深度学习的文本分类1-FastText
Task4 基于深度学习的文本分类1-FastText与传统机器学习不同,深度学习既提供特征提取功能,也可以完成分类的功能。学习目标学习FastText的使用和基础原理学会使用验证集进行调参文本表示方法 Part2-1现有文本表示方法的缺陷之前介绍的几种文本表示方法(One-hot、Bag of Words、N-gram、TF-IDF)都或多或少存在一定的问题:转换得到的向量维度很高,需要较长的训练实践;没有考虑单词与单词之间的关系,只是进行了统计。与这些表示方法不同,深度学习也可以用于
2021-10-16 18:58:35 404
原创 天池零基础入门NLP竞赛实战:Task3 基于机器学习的文本分类
Task3 基于机器学习的文本分类实操主要包括以下几个任务:基于文本统计特征的特征提取(包括词频特征、TF-IDF特征等)如何划分训练集(用于参数选择、交叉验证)结合提取的不同特征和不同模型(线性模型、集成学习模型)完成训练和预测文本表示方法在机器学习算法的训练过程中,假设给定NNN个样本,每个样本有MMM个特征,这样组成了N×MN×MN×M的样本矩阵,然后完成算法的训练和预测。文本表示成计算机能够运算的数字或向量的方法一般称为词嵌入(Word Embedding)方法。词嵌入将不定长的文本
2021-10-16 18:57:18 454
原创 天池零基础入门NLP竞赛实战:Task1&Task2 数据读取与数据分析
Task1&Task2 数据读取与数据分析赛题数据是文本数据,每个新闻是不定长的,使用csv格式进行存储。因此可以直接用Pandas完成数据读取的操作。import pandas as pdtrain_df = pd.read_csv(r'train_set.csv', sep='\t')pd.read_csv常用参数:读取的文件路径,这里需要根据改成你本地的路径,可以使用相对路径或绝对路径;分隔符sep,为每列分割的字符,设置为\t即可;读取行数nrows,为此次读取文件的函数,
2021-10-16 18:56:02 559
原创 李宏毅机器学习p21-卷积神经网络
李宏毅机器学习p21-卷积神经网络为什么需要CNN?-CNN代替全连接神经网络的优势直接用fully connect feedforward network来做影像处理的时候,会导致太多的参数。比如说一张100 *100的彩色图(3通道),展成一个vector有100 *100 3的pixel,相当于input vector的维度大小是30000,如果一层hidden layer有1000个neuron,那么这个hidden layer的参数就是有30000 *1000。CNN是用power-kno
2021-09-25 22:31:00 425
原创 李宏毅深度学习2021春p5-9:神经网络训练技巧
李宏毅深度学习2021春p5-9:神经网络训练技巧训练遇到的问题参数不断的更新,training loss一开始下降,然后不会再下降,但距离0还有很远的gap;一开始model就train不起来,不管怎么update参数,loss一直比较大。导致上述问题的原因可能有很多,我们先回忆一下梯度下降算法在现实世界中面临的挑战:问题1:局部最优(Stuck at local minima)问题2:等于0(Stuck at saddle point)问题3:趋近于0(Very slow at t
2021-09-22 22:51:09 1277 3
原创 李宏毅机器学习13、14-深度学习和反向传播
李宏毅机器学习13、14-深度学习和反向传播深度学习的步骤Step1:神经网络(Neural network)Step2:模型评估(Goodness of function)Step3:选择最优函数(Pick best function)Step1:神经网络(Neural network)神经元之间的连接方式全连接前馈神经网络神经网络可以有很多不同的连接方式,会产生不同的结构(structure)。全连接前馈神经网络是其中的一种。全链接和前馈的理解前馈(feedforward)也可以
2021-09-19 23:54:17 236
原创 李宏毅机器学习03、04-误差和梯度下降
李宏毅机器学习03、04-误差和梯度下降误差误差来源误差有三个来源:样本噪音noise;模型预测值的方差variance;预测值相对真实值的偏差bias。误差计算公式:误差的期望值 = 噪音的方差 + 模型预测值的方差 + 预测值相对真实值的偏差的平方E((y−f^(x))2)=σ2+Var[f^(x)]+(Bias[f^(x)])2Bias[f^(x)]=E[f^(x)−f(x)]E((y−\hat f(x))^2)=σ^2+Var[\hat f(x)]+(Bias[\hat f(
2021-09-17 23:26:11 513
原创 李宏毅机器学习02-回归Regression
李宏毅机器学习02-回归Regression回归定义Regression 就是找到一个函数 function ,通过输入特征 x,输出一个数值 Scalar。模型步骤step1:模型假设,选择模型框架(线性模型)step2:模型评估,如何判断众多模型的好坏(损失函数)step3:模型优化,如何筛选最优的模型(梯度下降)Step 1:模型假设 - 线性模型(Linear model)一元线性模型(单个特征)一元线性模型假设y=b+w⋅xy = b + w·xy=b+w⋅x,www和bbb
2021-09-15 23:19:25 170
原创 BERT实战(更新中)
BERT实战(更新中)关于BERT理论和源码分析系列:BERT相关(更新中)关于Transformer系列:Transformer相关BERT实战——(1)文本分类BERT实战——(2)序列标注BERT实战——(3)问答任务-多选问答BERT实战——(4)问答任务-抽取式问答...
2021-08-30 20:22:56 577
原创 BERT相关(更新中)
BERT相关(更新中)BERT相关——(1)语言模型BERT相关——(2)Contextualized Word Embedding和ELMO模型BERT相关——(3)BERT模型BERT相关——(4)GPT-2模型
2021-08-21 01:58:08 162
原创 西瓜书阅读笔记(目录)
西瓜书阅读笔记(目录)西瓜书阅读笔记——第1章-绪论西瓜书阅读笔记——第2章-模型评估与选择(到2.3.2)西瓜书阅读笔记——第3章-线性回归(3.1-3.2)西瓜书阅读笔记——第3章-对数几率回归(3.3)西瓜书阅读笔记——第3章-线性判别分析(3.4)西瓜书阅读笔记——第3章-多分类学习和类别不平衡问题(3.5、3.6)西瓜书阅读笔记——第4章-决策树西瓜书阅读笔记——第5章-神经网络西瓜书阅读笔记——第6章-支持向量机(硬间隔6.1、6.2) | 冬于的博客 (ifwind.gith
2021-08-20 18:17:57 394
原创 Transformer相关
Transformer相关——(1)Encoder-Decoder框架引言Transformer采用经典的encoder-decoder框架,是一个基于self-attention来计算输入和输出表示的模型,现已被应用于计算机视觉、自然语言处理等领域,都有非常好的效果。从这篇开始的“Transformer相关”博文,将尽可能覆盖Transformer触及的相关知识,一起手撕Transformer~Encoder-Decoder框架Encoder-Decoder框架可以看作是一种深度学习领域的研
2021-08-20 18:06:35 785
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人