![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习笔记
hyliuisme
这个作者很懒,什么都没留下…
展开
-
深度学习在线数据增广与离线数据增广理解与对比
众所周知在搞深度学习的时候数据是一个大问题,实践证明增加数据量在深度学习过程中能提高模型的性能,因此当数据集非常小的时候数据增广就成为了一个必要手段,而数据增广又分为在线增广和离线增广,下面介绍一下这两个方法的区别并列举pytorch和Keras的数据增广方法帮助理解。数据增广就是对现有的数据进行一些图形学或者几何学上的图像变换,网上有很多介绍的因此这里就不过多介绍了。在线增广即在模型训练过程中一边训练一边对数据进行增广,这种方法优点是不需要将增广的数据合成出来,因此节省了数据的存储空间,具有很高的原创 2020-09-23 17:38:24 · 3082 阅读 · 1 评论 -
img2markup每个batch里图像大小不同在计算attention时mask掉padding部分的方法
还是目前在做的数学公式识别问题,目前我使用的代码框架是opennmt,因为训练数据每张大小都不同,在训练的时候需要对每个batch里的图像进行pad,主要就是将同一个batch里的图像pad到最大的那张图像大小,而且是在图像右边进行pad(注意预处理图像的时候图像下方和右边一定不要贴着图像中的符号的位置进行切图,一定要留白,后边会解释这个原因)。现在的目的是在训练的解码部分mask掉图像的pad部分,因为要用自然场景的图像进行训练而pad部分会对精度产生影响(如果是白底黑字的合成数据pad不会造成影响)..原创 2020-05-16 19:36:55 · 672 阅读 · 0 评论 -
torch.manual_seed()
pytorch官方解释是设置生成随机数的种子。设置种子有什么用呢?神经网络在训练的时候参数需要随机初始化,有的时候初始化的参数非常好,然后我们希望以后训练的时候能复现之前效果非常好的随机初始化参数,但是如何让初始化的参数和之前的相同呢?这就是torch.manual_seed()这个函数的作用,利用相同的随机数种子就能保证复现之前的随机初始化参数。更详细的可以参考:https://clou...原创 2020-05-05 23:35:04 · 224 阅读 · 0 评论 -
非线性分类代码示例
上一篇提供了一个线性分类的代码,这一篇在上一篇的基础上提供一个非线性的代码,非线性模型f(x,W)=Wx^2+bimport torchimport matplotlib.pyplot as plt# 生成数据x = torch.unsqueeze(torch.linspace(-1, 1, 200), dim=1)y = x.pow(2) + 0.2 * torch.rand(x...原创 2019-11-14 11:20:50 · 381 阅读 · 0 评论 -
线性分类代码示例
以下是一个基于Python语言的线性分类代码示例,主要用到pytorch,numpy,matplotlib,import numpy as npimport torchimport matplotlib.pyplot as plt# 生成随机数据x_ = np.linspace(1, 0.1, 100).reshape(100, 1)y_ = 3 * x_ + np.random...原创 2019-11-14 11:17:30 · 1380 阅读 · 0 评论 -
矩阵的求导与求偏导
本文转自:https://blog.csdn.net/lirika_777/article/details/79646453版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。...转载 2019-10-24 11:31:20 · 1010 阅读 · 0 评论 -
困惑度perplexity
看了网上许多对困惑度的解释看的我相当困惑,各种公式什么的也看不明白,总结其中最简单直观的解释是:困惑度反应的是你的模型对预测下一个字符时有多少可选项,困惑度越低说明你的模型对下一个字符预测的把握越大,比如当困惑度为20时说明你的模型在预测下一个字符时它有20个选项,然后它就很困惑要选哪个毕竟有20个选项都很有可能是正确的,当困惑度接近1时说明你的模型预测下一个字符只有一个可选项,这从侧面也反映你的...原创 2019-10-18 17:41:55 · 1574 阅读 · 2 评论 -
Pytorch优化器介绍
本文转载几个个对优化器介绍比较好了解的文章中文文档:https://pytorch.apachecn.org/docs/1.0/optim.html英文文档:https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optimpytorch中使用torch.optim优化神经网络以及优化器的选择 - ...原创 2019-07-24 15:52:56 · 292 阅读 · 0 评论 -
Beamsearch集束搜索
最近在做数学公式识别因用到beamsearch所以记录一下beamsearch的计算过程。概念:Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。这样减少了空间消耗,并提高了时间效率。计算过程:假设当前词表有5个词,[a b c d e ],...原创 2019-10-15 13:40:12 · 385 阅读 · 0 评论 -
感受野
参考链接:https://www.jianshu.com/p/9305d31962d8感受野定义:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小;感受野计算:感受野的计算是逐层递推进行计算的,第一层的感受野永远等于卷积核的大小,递推计算公式是:代表当前层的感受野,代表上一层的感受野,K代表kernel size,stride代表步长。...原创 2019-10-14 22:32:30 · 129 阅读 · 0 评论 -
pooling(池化)与dropout
dropout: 神经网络训练时每次输入X的时候以一定的概率‘删除’部分神经元只对剩余的神经元进行训练,然后恢复被删除的神经元继续重复以上的过程,主要作用是为了防止过拟合。Pooling:主要作用是对卷积层提取的特征进行降维,减少特征数量,主要有maxpooling和averagepooling,maxpooling可以提取图片纹理信息而averagepooling可以保留图像的背景特征。...原创 2019-10-10 16:31:52 · 1816 阅读 · 0 评论 -
pytorch损失函数介绍
中文文档:https://pytorch.apachecn.org/docs/1.0/英文文档:https://pytorch.org/docs/stable/nn.html#loss-functions推荐的博客:https://blog.csdn.net/weixin_41278720/article/details/90217694...原创 2019-07-31 17:17:29 · 500 阅读 · 0 评论 -
浅谈激活函数ReLU和sigmoid
转自:https://www.sohu.com/a/214965417_100008678https://www.zhihu.com/question/29021768 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的activation function,传入到下一层神经元;再经过该层神经元的activate,继续往下传递,如此循环往复,直到输出层。正是由于...转载 2019-07-26 15:42:26 · 2193 阅读 · 0 评论 -
上采样与下采样(upsampling and subsampled)
下采样:下采样又称降采样,主要就是缩小图像,主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。上采样:上采样又称图像插值,主要是放大图像,主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。下采样原理:对于一幅图像I尺寸为M*N,对其进行s倍下采样,即得到(M/s)*(N/s)尺寸的得分辨率图像,当然s应该是M和N的公约数才行,如果考虑的是矩阵形式的图像...转载 2019-07-25 21:16:38 · 784 阅读 · 0 评论 -
RuntimeError: module must have its parameters and buffers on device cuda:2
参考:https://blog.csdn.net/qq_30680871/article/details/90761272报错RuntimeError: module must have its parameters and buffers on device cuda:2时主要是指定的GPU没有包含主卡的ID,如:device = torch.device("cuda" if use_c...转载 2019-07-30 21:49:17 · 2987 阅读 · 0 评论