
pytorch课程
文章平均质量分 62
未来可期,期许未来
这个作者很懒,什么都没留下…
展开
-
课程笔记:权重衰减和dropout
正则化:上面这条曲线表示验证集的loss情况;下面这条曲线表示训练集的loss情况方差:表示的是训练集与验证集之间的差异L2正则化正则化:降低方差,解决过拟合L1正则化:要cost与wi的绝对值之和都要小,参数解发生在坐标轴上,表明参数解有稀疏项。L2正则化又称为权值衰减在参数更新中多了一个(1-lamda),lamda大于0小于1,故因此L2正则化又称为权值衰减。权值不断减小,以至于模型没那么复杂在pytorch中,L2正则化加载在optimizer中实现optim_weig原创 2021-05-30 10:39:57 · 893 阅读 · 0 评论 -
课程笔记:Normalization
为啥要 Normalization呢,想想当初为啥要对权值初始化:数据尺度的变大变小,从而导致梯度逐渐增大这里是为了解决ICS问题(即数据尺度/分布异常,导致训练困难)Batch Normalization:mini-batch是指64或者128或者256BN一般在激活函数之前,对数据次数进行规范scale与shift又称为affine transform,增强模型的容纳能力_BatchNorm是基类,主要有5个参数训练状态:mean和var需要重新估计,根据batch改变;测试状态:原创 2021-05-29 08:44:51 · 169 阅读 · 0 评论 -
课程笔记:tensorboard
tensorboard:1)通过writer记录可视化数据2)通过SummaryWriter 在硬盘中生成event file(生成在runs文件夹下)3)在终端打开web网页端(在terminal中输入:tensorboard --logdir=./)SummaryWritermax_epoch = 100writer = SummaryWriter(comment='test_comment', filename_suffix="test_suffix")for x in ra原创 2021-05-28 14:31:11 · 118 阅读 · 0 评论 -
课程笔记:HOOK函数
hook函数可以分为两部分:关于tensor(第一种)和关于module(第二三四种)tensor.register_hook在反向传播完成时,非叶子结点的梯度会消失tensor.register_hook作用:1)完成保存非叶子结点的梯度2)修改叶子结点的值例如:保存a的梯度值;修改w的梯度值w = torch.tensor([1.], requires_grad=True)x = torch.tensor([2.], requires_grad=True)a = torch.ad原创 2021-05-28 09:27:21 · 400 阅读 · 0 评论 -
课程笔记:计算图和学习率(主要)
计算图用来描述运算的有向无环图两个主要元素:结点(Node)和边(Edge)结点表示数据边表示运算用户创建的结点为叶子结点:如这里的x,wis_leaf: 指示张量是否为叶子结点autogrodoptimizer学习率调整学习率 用于控制更新的步伐初始学习率的设置:初始学习率一共两种设置方法:1)设置较小的学习率:0.01(用在重新训练的时候),0.001, 0.0001(用在fine turn的时候)2)搜索最大的学习率:观察图可知,左边这幅图,学习率大于0.05原创 2021-05-26 23:12:53 · 263 阅读 · 0 评论 -
课程笔记:优化器
优化器:管理并更新梯度的参数可学习参数是指:权重或偏置更新策略:梯度下降基本属性:defaults: 存储学习率,momentum,weight_decaystate:例如再采用momentum时,会用到前几次更新时使用的梯度,就将其存储在state中,在这次更新中使用param_groups:管理一系列参数,是list,其中的每一个元素是字典,而字典中的key是最关键的_step_count:例如在100次的时候下降学习率,在200次的时候再下降学习率在backward之前,进行梯度清原创 2021-05-24 22:50:01 · 553 阅读 · 0 评论 -
课程笔记:损失函数
损失函数:损失函数针对一个样本代价函数:全部样本的均值目标函数:更广泛的概念(最终的目标),会包含cost与regularization并不是cost越小越好,因为会过拟合(模型太过复杂)。在追求模型输出与真实标签差异小的同时,会对模型做些约束(约束项即为正则项regularization)loss的代码:可见继承自module,有8个有序字典,有init与forward。reduction有三个值:none, mean和sumclass _Loss(Module): reduct原创 2021-05-24 16:38:53 · 831 阅读 · 0 评论 -
课程笔记:初始化
梯度消失和梯度爆炸:如下图,loss对w2求偏导,根据链式法则可得在全连接层后没有激活函数时:对于全连接而言,每前进一层,每个神经元的标准差std都会扩大根号n倍(n表示这一层的神经元个数),最后会超出精度可以表示的范围,造成NAN。于是,若想H的标准差维1,此层权值W的标准差应该为 1/根号n,则每个网络层的标准差为1(即初始化时W的标准差为1/根号n)由此可见,采用恰当的权值初始化方法,多层全连接层的输出值的尺度维持在一定范围内class MLP(nn.Module): def原创 2021-05-23 20:21:45 · 426 阅读 · 0 评论 -
课程笔记:transforms
torchvision:原创 2021-05-23 11:46:07 · 522 阅读 · 0 评论 -
课程笔记:如何读论文
如何整理论文:(1) 少量论文管理模式:统一命名格式:时间—作者—题名 ;时间—关键词—题名按类别归入文件夹检索:电脑自带搜索工具,搜索关键词(2)借助论文管理软件:endnote、Mendeley(推荐)读论文三部曲:泛读、精读、总结一、泛读:快速浏览,把握概要读标题、摘要、结论、所有小标题和图表整理小标题泛读目标及效果自测:1.论文要解决什么问题2. 论文采用了什么方法3. 论文达到什么效果二、精读:选出精华,仔细阅读精读目标及效果自测:所读段落是否详细掌握三、总原创 2021-05-13 21:19:03 · 107 阅读 · 0 评论 -
课程笔记:数据读取dataloder和dataset
epoch: 所有样本都输入到模型中iteration: 一批样本输入到模型中batchsize: 批大小,决定一个epoch有多少个iteration (一 次输入多少个样本到模型中 )数据:1)数据收集:img, label2)数据划分:train、valid和test3)数据读取:dataloader :sampler :indexdataset :img,label4)数据预处理:transformsdataloder:dataset:数据读取:1)读原创 2021-04-30 16:40:16 · 844 阅读 · 1 评论 -
课程笔记:池化层、线性层与激活函数
池化层(Pooling Layer):对信号进行 “收集” 和 “总结”“收集” 指:多变少; “总结” 指:最大值/平均值池化操作也可以剔除冗余信息,减少后面的计算量用一个像素值代表4个像素值池化层也是三种:一维池化,二维池化,三维池化nn.MaxPool2d:#池化窗口为2*2,步长也是2*2#步长与池化窗口一样大小,为了不重叠maxpool_layer = nn.MaxPool2d((2, 2), stride=(2, 2))其中,return_indices用来记录池化像素最原创 2021-04-29 11:16:22 · 2470 阅读 · 0 评论 -
课程笔记:卷积Convolution和转置卷积ConvTranspose
卷积Convolution:分为3种:(一般情况下,卷积核在几个维度上滑动,就是几维卷积)1)一维卷积2)二维卷积3)三维卷积一维卷积:卷积核只在一个方向上滑动二维卷积:卷积核在横轴和纵轴两个方向上滑动三维卷积:卷积核在x,y和z轴方向上滑动卷积运算是线性运算:卷积核在图片上滑动,在相应位置上进行乘加运算卷积核是某种模板,某种特征提取器,activation map 是模板在原始图像上的体现。卷积过程是模板匹配的过程,类似于用一个模板与图像上的小区域进行匹配(即相似性计算),与卷积核越原创 2021-04-28 21:09:01 · 609 阅读 · 0 评论 -
课程笔记:AlexNet
AlexNet:2012年以高出第二名10多个百分点的准确率获得ImageNet分类任务关军,开创卷积神经网络的新时代AlexNet特点:1)采用ReLU:代替饱和激活函数,减轻梯度消失2)采用LRN(local Response Normalization):对数据归一化,减轻梯度消失(后来用batch normalization代替)3)Dropout:提高全连接层的鲁棒性,增加网络的泛化能力4)data augmentation:TencRrop,色彩修改把AlexNet分为:feat原创 2021-04-28 16:26:07 · 183 阅读 · 0 评论 -
课程笔记:tensor的创建
张量是多维数组:一维张量是标量;二维张量是矩阵(灰度图像);三维向量(彩色图像)Variable数据类型已经并入tensor中,进行自动求导tensor:data: 被包装的Tensor dtype: 张量的数据类型(9种),主要分为3种(float, int, boolean),其中卷积层的权值和图像预处理之后都默认为32位的浮点数。图像标签一般为长整型torch.long,计算交叉熵损失函数的时候还会注意到这一点。 Shape:张量的形状device:张量所在设备,GPU/CPU,是加原创 2021-04-28 14:42:32 · 483 阅读 · 0 评论 -
课程笔记:Containers:Sequential、ModuleList和ModuleDict
Containers:(1) nn.Sequential:按顺序的包装多个网络层(2) nn.ModuleList:像python的list一样包装多个网络层(3) nn.ModuleDict:像python的dict一样包装多个网络层(通过命名索引网络层)nn.Sequential 是nn.Module的容器,用于按顺序包装一组网络层,使这组网络层被看作使整体(或子模块)Sequential继承自Module类,则有8个有序字典去管理它的属性例如:对LeNet:卷积、池化、卷积、池化包装成原创 2021-04-28 11:00:35 · 312 阅读 · 0 评论 -
课程笔记:nn.module和LeNet模型
模型创建的步骤4步:数据模型损失函数与优化器迭代训练模型:(都基于nn.Module)(1)模型创建:a.创建网络层:卷积层,池化层,激活函数层等b.拼接网络层:LeNet, AlexNet, ResNet等(2)权值初始化:Xavier,Kaiming,均匀分布,正态分布等LeNet:共7层:Conv1,pool1,Conv2,pool2,fc1,fc2,fc3模型构建的两个要素:1)构建子模块(模型的_init__)2)拼接子模块(模型的forward)class Le原创 2021-04-26 22:34:33 · 795 阅读 · 0 评论