深度学习
文章平均质量分 81
Alter__
技能树技能点击中
展开
-
DIDL笔记(pytorch版)(十二)
文章目录图像增广锚框图像增广import d2l as d2lfrom PIL import Imagefrom matplotlib import pyplot as plt # 画布import torchvisiondef show_images(imgs, num_rows, num_cols, scale=2): figsize = (num_cols * scale, num_rows * scale) _, axes = plt.subplots(num_原创 2021-06-15 18:44:43 · 310 阅读 · 0 评论 -
DIDL笔记(pytorch版)(十一)
文章目录前言AdaGrad算法代码RMSProp算法代码AdaDelta算法Adam算法补充前言已知梯度下降会因为不同维度收敛速度不同导致震荡幅度加大的问题,动量法提出当前梯度方向应充分考虑之前的梯度方向 缓解了梯度震荡幅度大的问题。但是上面两种对于每个维度的梯度值使用同样的学习率,这会导致个别维度收敛速度过慢。AdaGrad算法,它根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统一的学习率难以适应所有维度的问题。AdaGrad算法AdaGrad算法还是有问题的:当学习率在原创 2021-06-10 16:07:49 · 235 阅读 · 0 评论 -
DIDL笔记(pytorch版)(十)
文章目录前言前言优化方法中,梯度下降、随机梯度下降、小批量随机梯度下降已经在前面讲过线性支持向量机的随机梯度下降和逻辑斯蒂回归的梯度下降。核心在与我们需要得到的多维参数x(或者w),都是先初始化后(0或者随机),依靠下面公式不断迭代,满足最终条件结束得到的。梯度下降也是有问题的,它对于自变量的迭代方向仅仅取决于自变量当前位置,不考虑之前的方向,这带来的问题明显的表达就是震荡。...原创 2021-06-08 17:14:46 · 356 阅读 · 0 评论 -
DIDL笔记(pytorch版)(九)
文章目录标准化和归一化全连接层批量归一化卷积层批量归一化预测时批量归一化残差网络背景残差块标准化和归一化标准化处理:(x - x.mean()) / (x.std())处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。标准化处理输入数据使各个特征的分布相近:这往往更容易训练出有效的模型。对深层神经网络来说,即使输入数据已做标准化,训练中模型参数的更新依然很容易造成靠近输出层的输出剧烈变化。在模型训练时,批量归一化利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各原创 2021-06-05 11:35:11 · 229 阅读 · 0 评论 -
DIDL笔记(pytorch版)(八)
文章目录前言NiNGoogLeNet前言LeNet、AlexNet和VGG都是不断的加深模型的层数,看网络结构可以看出后者有前者的影子,并且都是一系列卷积+最后全连接的操作。NiN却是网络串联网络,并且NiN最后的分类方法也很不同。NiN之前的网络都是卷积提取特征之后带全连接做分类。NiN提供另一个思路,卷积层和全连接层交替。因为全连接层的输入输出要是二维,卷积通常是四维,为了方便全连接层使用1 ×\times× 1 卷积代替。原理之前解释过。贡献:空间信息有效的传递到后层。最后分类采用输原创 2021-06-03 21:40:06 · 182 阅读 · 0 评论 -
DIDL笔记(pytorch版)(七)
文章目录前言LeNetAlexNetVGGNet前言大致总结一下深度学习的流程:配置变量:批次,学习率,迭代次数设备等。导入数据:数据预处理(标准化,清洗,去噪,划分数据集),弹性形变等。搭建网络:卷积、池化、激活函数等。训练模型:选择损失函数,选择优化方法,迭代循环嵌套批次循环。(训练外层可以套k折交叉验证)内层循环执行过程:x输入网络得到输出y->y与标签比对得到损失->梯度清零->计算梯度->反馈->记录损失以及正确率方便每次迭代后展示。LeN原创 2021-06-02 11:18:48 · 323 阅读 · 1 评论 -
VGGNet论文总结
文章目录VGG简介VGGNet目的和结果VGGNet架构和特点VGGNet的训练训练时图像处理测试测试的两种策略VGG简介论文名称:《VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION》。作者团队:Karen Simonyan ∗ & Andrew Zisserman +;Visual Geometry Group, Department of Engineering Science, University o原创 2021-06-01 15:49:00 · 1498 阅读 · 2 评论 -
DIDL笔记(pytorch版)(六)
文章目录前言卷积运算和互相关运算卷积之后输入输出大小问题填充步幅前言只记录感兴趣的知识点。卷积是网络中的一些操作。卷积运算和互相关运算互相关运算就是输入子数组与核数组按照元素相乘并且求和得到。但是卷积运算其实是数学中比较重要的运算,是一种特殊的加权求和。卷积运算与互相关运算的不同体现在"卷",意思是核数组需要在原来的基础上翻折或者旋转(180度)再和输入按位相乘并求和。但其实没有关系,在深度学习领域里面,我们一般把互相关运算就叫做卷积运算,因为核数组旋转与否不影响最终结果。参考:https原创 2021-06-01 12:05:10 · 225 阅读 · 0 评论 -
DIDL笔记(pytorch版)(五)
模型构造方法一:继承nn.Module类(常用)nn.Module类是所有神经网络模块的基类。用这么类构造模型需要重载__init__函数和forward函数(正向传播)。文中说这个类无须定义反向传播函数,因为系统会自动生成,其解释看下面参考。参考:https://zhuanlan.zhihu.com/p/37213786https://www.cnblogs.com/luckyplj/p/13378293.html虽然最后的结果会grad_fn会显示AddmmBackward,但是这个并没有原创 2021-05-28 14:59:59 · 269 阅读 · 0 评论 -
DIDL笔记(pytorch版)(四)
文章目录正向传播反向传播衰减和爆炸正向传播白话总结:输入xxx与W(1)W^{(1)}W(1)做乘运算得到zzz,zzz经过激活函数得到中间层输入hhh,hhh与W(2)W^{(2)}W(2)做乘运算得到输出结果ooo,到这里就如果是预测就结束了,但是如果是训练的话还需要其他步骤。ooo与真值yyy经过损失函数得到损失值LLL,LLL再与正则化项sss(W(1)W^{(1)}W(1)、W(1)W^{(1)}W(1)得到)相加得到目标函数JJJ,我们在学习的时候就知道,我们要做的就是最小化目标函数JJJ原创 2021-05-26 16:29:40 · 207 阅读 · 0 评论 -
DIDL笔记(pytorch版本)(三)
文章目录拟合问题权重衰减拟合问题在训练数据集大小一定的情况下,模型越简单,但是数据复杂。训练初期误差下降后,后面难以继续降低,即使在最后一次结束,训练误差还是很高。训练数据集过少,甚至少于模型参数数量时,这样会显得模型过于复杂,容易被训练数据中的噪声影响。即使经过迭代训练误差下降,但是在测试数据集上误差很高。欠拟合指模型无法得到较低的训练误差,过拟合指模型的训练误差远小于它在测试数据集上的误差。权重衰减权重衰减 = 正则化;正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小。为什么呢?原创 2021-05-26 14:53:11 · 177 阅读 · 0 评论 -
dive into deep learning 笔记(pytorch版本)(二)
文章目录前言softmax的原始代码前言softmax回归其实和普通线性回归很像,只是普通的线性回归是二分类,但是softmax可以是多分类。oi=xiW+b,yi=softmax(oi) o^i = x^iW+b, \\y^i= softmax(o^i)oi=xiW+b,yi=softmax(oi)softmax的原始代码在这里插入代码片...原创 2021-05-24 19:48:34 · 212 阅读 · 0 评论 -
Pytorc学习笔记
文章目录基础知识机器学习的操作数据集的处理基础知识创建tensorimport torch# 构造5x3的矩阵,不初始化result = torch.empty(3,3) # 构造一个随机初始化的矩阵x = torch.rand(5,3) # 直接用数据构造一个张量x = torch.tensor([5.5,3]) # 数据类型是int32的0矩阵y = torch.zeros(3,3,dtype=torch.float) # 默认返回一个与y有同样torch.原创 2021-01-11 15:41:46 · 219 阅读 · 1 评论 -
dive into deep learning 笔记(pytorch版本)(一)
文章目录前言算数操作索引前言只记录感兴趣的东西,详细参考如下。参考:http://tangshusen.me/Dive-into-DL-PyTorch/#/《dive into deep learning》pytorch文档:https://pytorch.org/docs/stable/torch.html算数操作pytorch算数运算+、-、*、/,除了最常见的表示方法,还有in-place(原地)形式y.add_(x)# 注:PyTorch操作in-place版本都有后缀_,原创 2021-05-22 17:07:48 · 665 阅读 · 1 评论