![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
文章平均质量分 61
pytorch学习记录
左小田^O^
这个作者很懒,什么都没留下…
展开
-
Pytorch学习记录(十三):循环神经网络((Recurrent Neural Network)
循环神经网络的基本结构循环神经网络的基本结构特别简单,就是将网络的输出保存在一个记忆单元中,这个记忆单元和下一次的输入一起进入神经网络中。使用一个简单的两层网络作为示范,在它的基础上扩充为循环神经网络的结构,可以看到网络在输入的时候会联合记忆单元一起作为输入,网络不仅输出结果,还会将结果保存到记忆单元中。输入序列的顺序改变,会改变网络的输出结果,这是因为记忆单元的存在,使得两个序列在顺序改变之后记忆单元中的元素也改变了,所以会影响最终的输出结果。...原创 2021-10-24 20:58:40 · 187 阅读 · 0 评论 -
Pytorch学习记录(十二):学习率衰减+正则化
学习率衰减对于基于一阶梯度进行优化的方法而言,开始的时候更新的幅度是比较大的,也就是说开始的学习率可以设置大一点,但是当训练集的 loss 下降到一定程度之后,,使用这个太大的学习率就会导致 loss 一直来回震荡,比如这个时候就需要对学习率进行衰减已达到 loss 的充分下降,而是用学习率衰减的办法能够解决这个矛盾,学习率衰减就是随着训练的进行不断的减小学习率。在 pytorch 中学习率衰减非常方便,使用 torch.optim.lr_schedulernet = resnet(3, 10)o原创 2021-10-24 20:48:35 · 279 阅读 · 0 评论 -
Pytorch学习记录(十一):数据增强、torchvision.transforms各函数讲解
常用的数据增强方法常用的数据增强方法如下:1.对图片进行一定比例缩放2.对图片进行随机位置的截取3.对图片进行随机的水平和竖直翻转4.对图片进行随机角度的旋转5.对图片进行亮度、对比度和颜色的随机变化import syssys.path.append('..')from PIL import Imagefrom torchvision import transforms as tfs# 读入一张图片im = Image.open('./cat.png')im随机比例放缩原创 2021-09-12 14:39:16 · 2312 阅读 · 0 评论 -
Pytorch学习记录(十):数据预处理+Batch Normalization批处理(BN)
数据预处理目前数据预处理最常见的方法就是中心化和标准化,中心化相当于修正数据的中心位置,实现方法非常简单,就是在每个特征维度上减去对应的均值,最后得到 0 均值()像素范围在[-128,127],以0为中心的特征。标准化也非常简单,在数据变成 0 均值之后,为了使得不同的特征维度有着相同的规模,可以除以标准差近似为一个标准正态分布,也可以依据最大值和最小值将其转化为 -1 ~ 1 之间。Batch Normalization批处理(BN)批标准化,简而言之,就是对于每一层网络的输出,对其做一个归一化,原创 2021-09-12 10:19:52 · 425 阅读 · 0 评论 -
Pytorch学习记录(九):Pytorch中卷积神经网络
卷积神经网络中所有的层结构都可以通过 nn这个包调用。1.卷积层nn.Conv2d()torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)nn.Conv2d()就是PyTorch中的卷积模块了,里面常用的参数有5个,分别是 in_channels,out_channels,kernel_size,stride,padding,除此之外还原创 2021-09-05 18:17:11 · 334 阅读 · 0 评论 -
Pytorch学习记录(四):参数初始化
参数初始化(Weight Initialization)只需要学会如何对模型的参数进行初始化的赋值即可。使用 NumPy 来初始化举例import torchimport numpy as npfrom torch import nnnet1 = nn.Sequentisl( nn.Linear(30,40), nn.ReLU(), nn.Linear(40,50), nn.ReLU(), nn.Linear(50,10))# 访问第一层的参数原创 2021-08-30 15:55:57 · 371 阅读 · 0 评论 -
Pytorch学习记录(五):反向传播+基于梯度的优化器(SGD,Adagrad,RMSporp,Adam)
反向传播算法链式法则求偏导反向传播Sigmoid函数举例反向传播算法,这是深度学习中优化算法的核心,因为所有基于梯度的优化算法都需要计算每个参数的梯度各种优化算法的变式1.梯度下降法2.SGD随机梯度下降法就是每次使用一批(batch)数据进行梯度的计算,而不是计算全部数据的梯度。3.Momentum动量是在随机梯度下降的同时,增加动量这来自于物理中的概念,可以想象损失函数是一个山谷,一个球从山谷滑下来,在一个平坦的地势,球的滑动速度就会慢下来,可能陷入一些鞍点或者原创 2021-08-29 21:07:41 · 1395 阅读 · 0 评论 -
Pytorch学习记录(七):处理数据和训练模型的技巧
良好的数据预处理和参数初始化能够很快达到事半功倍的结果。在模型训练中采用一些训练技巧,能够使得模型最后达到state-of-art的效果,这一节我们讲一讲处理数据和训练模型。数据预处理1. 中心化每个特征维度都减去相应的均值实现中心化,这样可以使得数据变成0均值,特别对于一些图像数据,为了方便我们将所有的数据都减去一个相同的值。2. 标准化在使得数据都变成0均值之后,还需要使用标准化的做法让数据不同的特征维度都有着相同的规模。有两种常用的方法:一种是除以标准差,这样可以使得新数据的分布接近标准高原创 2021-08-24 19:43:56 · 325 阅读 · 0 评论 -
Pytorch学习记录(三):神经网络的结构+使用Sequential、Module定义模型
例如:nn.Linear(in,out)如输入层4个节点,输出2个节点,可以用nn.Linear(4,2)来表示,同时 nn.Linear(in,out,bias=False)可以不使用偏置,默认是True。N 层神经网络并不会把输入层算进去,因此一个一层的神经网络是指没有隐藏层、只有输入层和输出层的神经网络。Logistic回归就是一个一层的神经网络。输出层一般是没有激活函数的,因为输出层通常表示一个类别的得分或者回归的一个实值的目标,所以输出层可以是任意的实数。模型的表示能力与容量..原创 2021-08-24 17:39:14 · 886 阅读 · 0 评论 -
Pytorch——数据加载和处理
Pytorch中进行数据处理的工具scikit-image:用于图像的IO和变换pandas:用于更容易地进行csv解析原创 2021-06-17 16:00:35 · 159 阅读 · 1 评论 -
图解numpy数组矩阵
学习链接https://blog.csdn.net/qq_42189368/article/details/107403349原创 2021-06-16 16:07:44 · 110 阅读 · 0 评论 -
Pytorch——autograd(自动求导)+nn模块
一个n维张量,类似于numpy,但可以在GPU上运行搭建和训练神经网络时的自动微分/求导机制使用自动微分来自动计算神经网络中的后向传递。 PyTorch中的 autograd 包提供了这个功能。当使用autograd时,网络前向传播将定义一个计算图;图中的节点是tensor,边是函数。如果我们想计算某些的tensor的梯度,我们只需要在建立这个tensor时加入这么一句: requires_grad=True 。这个tensor上的任何PyTorch的操作都将构造一个计算图,从而允许我们稍后在图中执行转载 2021-04-12 15:24:53 · 370 阅读 · 0 评论 -
nn.module
https://blog.csdn.net/weixin_42018112/article/details/90084419torcn.nn是专门为神经网络设计的模块化接口. nn构建于autograd之上,可以用来定义和运行神经网络。nn.Module是nn中十分重要的类,包含网络各层的定义及forward方法。如何定义自己的网络:需要继承nn.Module类,并实现forward方法。继承nn.Module类之后,在构造函数中要调用Module的构造函数, super(Linear, self)转载 2021-04-12 10:55:18 · 345 阅读 · 0 评论 -
ResNet残差网络
https://www.cnblogs.com/shine-lee/p/12363488.htmlhttps://blog.csdn.net/mao_feng/article/details/52734438Resnet要解决的是什么问题ResNets要解决的是深度神经网络的“退化”问题。什么是“退化”?我们知道,对浅层网络逐渐叠加layers,模型在训练集和测试集上的性能会变好,因为模型复杂度更高了,表达能力更强了,可以对潜在的映射关系拟合得更好。而“退化”指的是,给网络叠加更多的层后,性能却快转载 2021-04-12 10:29:05 · 93 阅读 · 0 评论 -
VGG学习记录
学习记录:https://zhuanlan.zhihu.com/p/41423739https://www.cnblogs.com/wangguchangqing/p/10338560.htmlhttps://zhuanlan.zhihu.com/p/42233779VGG是Oxford的Visual Geometry Group的组提出的。该网络是在ILSVRC 2014上的相关工作,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,分别是VGG16和VGG19,两转载 2021-04-12 10:10:12 · 87 阅读 · 0 评论 -
LeNet学习记录
LeNet-5:是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一。LenNet-5共有7层(不包括输入层),每层都包含不同数量的训练参数,如下图所示。1、INPUT层-输入层首先是数据 INPUT 层,输入图像的尺寸统一归一化为32*32。注意:本层不算LeNet-5的网络结构,传统上,不将输入层视为网络层次结构之一。2、C1层-卷积层输入图片:32*32卷积核大小:5转载 2021-04-07 21:47:30 · 78 阅读 · 0 评论 -
深度学习——Dropout
学习链接:https://blog.csdn.net/program_developer/article/details/80737724https://www.cnblogs.com/makefile/p/dropout.html参数正则化方法 - DropoutDropout可以比较有效的缓解过拟合的发生,在一定程度上达到正则化的效果。什么是Dropout当一个复杂的前馈神经网络被训练在小的数据集时,容易造成过拟合。为了防止过拟合,可以通过阻止特征检测器的共同作用来提高神经网络的性能。Dro原创 2021-04-06 10:11:09 · 262 阅读 · 0 评论 -
深度学习——早停法(Early Stopping)
学习链接:https://www.jianshu.com/p/9ab695d91459目的:为了获得性能良好的神经网络,网络定型过程中需要进行许多关于所用设置(超参数)的决策。超参数之一是定型周期(epoch)的数量:亦即应当完整遍历数据集多少次(一次为一个epoch)?如果epoch数量太少,网络有可能发生欠拟合(即对于定型数据的学习不够充分);如果epoch数量太多,则有可能发生过拟合(即网络对定型数据中的“噪声”而非信号拟合)。早停法旨在解决epoch数量需要手动设置的问题。它也可以被视为一种原创 2021-04-06 09:55:32 · 6366 阅读 · 0 评论 -
Pytorch——图像分类器
通常来说,当你处理图像,文本,语音或者视频数据时,你可以使用标准 python 包将数据加载成numpy 数组格式,然后将这个数组转换成 torch.*Tensor。对于图像,可以用 Pillow,OpenCV对于语音,可以用 scipy,librosa对于文本,可以直接用 Python 或 Cython 基础数据加载模块,或者用 NLTK 和 SpaCy。对于视觉,pytorch创建了totchvision的包。https://pytorch-cn.readthedocs.io/zh/lates原创 2021-04-05 20:54:08 · 260 阅读 · 2 评论 -
Pytorch——神经网络
https://blog.csdn.net/Ever_glow/article/details/89086960https://ptorch.com/docs/3/可以使用torch.nn包构建神经网络。神经网络是基于自动梯度 (autograd)来定义一些模型。一个 nn.Module 包括层和一个方法 forward(input) 它会返回输出(output)。如下图这是一个简单的前馈神经网络,它接收输入,让输入一个接着一个的通过一些层,最后给出输出。一个典型的神经网络训练过程包括以下几原创 2021-04-05 14:25:55 · 207 阅读 · 0 评论 -
Pytorch学习记录——自动微分autograd
学习链接:https://blog.csdn.net/weixin_34062329/article/details/94677293Tensor是PyTorch实现多维数组计算和自动微分的关键数据结构。一方面,它类似于numpy的ndarray,用户可以对Tensor进行各种数学运算;另一方面,当设置.requires_grad = True之后,在其上进行的各种操作就会被记录下来,用于后续的梯度计算,其内部实现机制被成为动态计算图(dynamic computation graph)。autogra原创 2021-04-05 11:08:55 · 137 阅读 · 0 评论 -
安装python - m visdom.server无法启动问题
在注释掉download acripts仍无法启动后,可以尝试下面步骤。一般安装步骤:打开Anaconda Promptpip install visdom启动服务器python -m visdom.server如此是启动成功,如下图,则安装成功。如遇到Downloading scripts, this may take a little while,长时间未响应,则1.找到visdom模块安装位置:anaconda安装目录下\Lib\site-packages\visdom2.修原创 2021-03-31 14:49:29 · 6282 阅读 · 20 评论 -
Pytorch学习记录——激活函数
学习记录:详细教程https://blog.csdn.net/weixin_45437022/article/details/114296537https://blog.csdn.net/vincent_duan/article/details/113931402https://www.jianshu.com/p/bdf1cc93b1e0https://www.jiqizhixin.com/graph/technologies/1697e627-30e7-48a6-b799-39e2338ffab5原创 2021-03-24 11:32:32 · 60 阅读 · 0 评论 -
Pytroch学习记录——梯度
学习记录:https://zhuanlan.zhihu.com/p/38525412梯度在数学中的含义:偏导如上图:(0,0)处偏导就是(0,0),(1,1)处偏导就是(-2,2)梯度有大小有方向常见梯度原创 2021-03-24 11:05:54 · 63 阅读 · 0 评论 -
Pytorch学习纪律——统计属性
学习记录:https://www.jb51.net/article/177470.htmhttps://zhuanlan.zhihu.com/p/165340455https://blog.csdn.net/weixin_30633405/article/details/102095819原创 2021-03-23 15:56:13 · 57 阅读 · 0 评论 -
深度学习-多维张量解释
学习记录,链接:https://www.jianshu.com/p/f34457c222c5原创 2021-03-17 19:30:20 · 139 阅读 · 0 评论