【PyTorch学习笔记】19:Batch Normalization

归一化(Normalization) 简述 现在常使用ReLU函数,避免梯度弥散的问题,但是有些场合使用Sigmoid这样的函数效果更好(或者是必须使用),如Sigmoid函数当函数值较大或者较小时,其导数都接近0,这会引起梯度弥散,所以要将输入控制在一个较好的范围内,这样才避免了这种问题。 ...

2019-04-30 12:40:53

阅读数 68

评论数 0

【PyTorch学习笔记】18:pooling,up-sample,ReLU

pooling池化是下采样(down-sample)的一种手段,让feature map减小;而up-sample则是上采样,实际上做了放大图像的操作。 在CNN中,基本的单元是一个Conv2d,后面配上[Batch Norm, pooling, ReLU],后面三个的顺序不一定。 pooli...

2019-04-29 10:21:26

阅读数 120

评论数 0

【PyTorch学习笔记】17:2D卷积,nn.Conv2d和F.conv2d

简述 2D卷积很适合处理图像输入。以之前的MNIST为例,在使用MLP时,为方便全连接层的处理,将28乘28的输入flatten成了784维的向量,这样就要有784个权值。而使用了2D卷积以后,假设使用3乘3的卷积核,那么每次的输入都是卷积核扫过的3乘3大小的区域,这样就只需要有9个权值,参数量大...

2019-04-05 10:42:16

阅读数 680

评论数 0

【PyTorch学习笔记】16:Early Stop,Dropout,Stochastic Gradient Descent

Early Stop 如果一直训练,训练集上的性能可以一直上升,但验证集上的性能在经过某个点之后就可能开始下降,这时就是模型出现了over-fitting,提前停止就是用来克服over-fitting的。 但是没训练完怎么知道哪个点是最大值点呢?可以用经验来判断,比如当连续多个epoch上的验证集...

2019-03-28 19:10:05

阅读数 178

评论数 0

【PyTorch学习笔记】15:动量(momentum),学习率衰减

动量(momentum) 简述 之前学习的用梯度更新参数www的公式: wk+1=wk−α⋅∇f(wk)w_{k+1}=w_k - \alpha \cdot \nabla f(w_k)wk+1​=wk​−α⋅∇f(wk​) 其中α\alphaα是学习率。 现用 zk+1=β⋅zk+∇f(wk)wk...

2019-03-27 19:57:52

阅读数 351

评论数 0

【PyTorch学习笔记】14:划分训练-验证-测试集,使用正则化项

划分训练-验证-测试集 简述 测试集一般都是客户用来验收模型的,是拿不到的,在Kaggle比赛里就是用来计算选手模型的score的集合。而训练集拿到以后要划分成训练集和验证集,只用训练集来训练,验证集用来以一定的频率对模型的performance做验证,也就是用来防止over-fitting的,在...

2019-03-27 17:30:54

阅读数 1151

评论数 0

【PyTorch学习笔记】13:使用Visdom可视化训练-测试过程

在PyTorch的可视化中,相比tensorboardX,Visdom更简洁方便一些(例如对image数据的可视化可以直接使用Tensor,而不必转到cpu上再转为numpy数据),刷新率也更快。 安装Visdom 直接用pip安装的话在windows上面可能出现问题,先从Github上下载Vis...

2019-03-26 15:08:46

阅读数 290

评论数 0

【PyTorch学习笔记】12:继承nn.Module定义MLP,使用GPU加速

继承nn.Module定义MLP 上一节学习写LR多分类的时候,网络中的参数w和b都是自己手动定义的(而且w的shape是[输出,输入]),对深度学习框架来说其实没必要那么麻烦,可以直接用现成的定义层的方式来定义。 import torch from torch import nn from to...

2019-03-25 20:48:37

阅读数 204

评论数 0

【PyTorch学习笔记】11:LR做MNIST手写数字的多分类demo

尽管ReLU相比其它激活函数已经大大避免了发生梯度消失或者为0的现象,但不好的参数初始化方法也会导致这种情况的出现。 使用标准正态分布初始化 这里用torch.randn()来做实际上就是对参数w和b进行了N~(0,1)的标准正态分布初始化,这个初始化值都很小,比较接近0。 import torc...

2019-03-23 23:17:50

阅读数 69

评论数 0

【PyTorch学习笔记】10:Logistic Regression,Cross Entropy Loss

Logistic Regression 简述 Logistic Regression虽然叫Regression,但是都用来解决分类问题,这是一个历史遗留问题。虽然它得到的是一个连续的值,它实际上做的是一个分类的工作(而不是回归): y=σ(xw+b)y=\sigma (xw+b)y=σ(xw+b)...

2019-03-23 00:15:49

阅读数 42

评论数 0

【PyTorch学习笔记】9:感知机,链式法则,对Himmelblau函数的优化实例

感知机 单层感知机的例子 import torch from torch.nn import functional as F x = torch.randn(1, 10) w = torch.randn(1, 10, requires_grad=True) # 对输出用sigmoid激活 o =...

2019-03-21 23:26:00

阅读数 102

评论数 0

【PyTorch学习笔记】8:激活函数,损失函数,使用PyTorch求导

激活函数 在PyTorch的老版本里这些激活函数在torch.nn.functional下,现在大多已经改到了torch下。 Sigmoid 数据将被映射到0到1之间。 f(x)=σ(x)=11+e−xf(x)=\sigma (x)=\frac{1}{1+e^{-x}}f(x)=σ(x)=1+e−...

2019-03-20 22:57:12

阅读数 185

评论数 0

【PyTorch学习笔记】7:Tensor的统计操作,Tensor的高阶操作

Tensor的统计操作 范数 import torch a = torch.full([8], 1) b = a.reshape([2, 4]) c = a.reshape([2, 2, 2]) # 求L1范数(所有元素绝对值求和) print(a.norm(1), b.norm(1), c....

2019-02-23 20:23:33

阅读数 514

评论数 2

【PyTorch学习笔记】6:Broadcasting,对Tensor的合并与拆分,Tensor运算

Broadcasting Broadcasting也就和之前学MPI时候学的广播一样,能够实现自动维度扩展,有点像上节学的expand的功能,但是是自动完成的,而且不需要像repeat那样对数据进行拷贝,可以节省内存。 从最后面的维度开始匹配。 在前面插入若干维度。 将维度的size从1通过ex...

2019-02-23 00:23:20

阅读数 899

评论数 1

【PyTorch学习笔记】5:对Tensor的变换

对Tensor的变换 改变shape 调整Tensor的shape(通过返回一个新的Tensor),在老版本中这个函数是view(),功能上都是一样的。 import torch a = torch.rand(4, 1, 28, 28) print(a.shape) print(a.reshap...

2019-02-22 00:47:08

阅读数 384

评论数 0

【PyTorch学习笔记】3:创建Tensor的多种方法

创建Tensor的多种方法 从numpy创建 import torch import numpy as np a = np.array([2, 3.3]) a = torch.from_numpy(a) # torch.DoubleTensor 从list创建 a = torch.Float...

2019-02-19 21:26:26

阅读数 743

评论数 0

【PyTorch学习笔记】2:基本数据类型,各个维度的Tensor

基本数据类型 简述 对于Python的数据类型int、float等,PyTorch中相对应的就是torch.IntTensor、torch.FloatTensor等,如果就是普通的数就用demension是0,如果是数组那就用更高的维度来表示就可以了。 上面都是在CPU上的数据类型,如果是在GPU...

2019-02-19 16:15:53

阅读数 430

评论数 0

【PyTorch学习笔记】1:开发环境搭建,numpy实现简单回归案例

跟着网易云课堂上的新课学习一下PyTorch。 开发环境搭建 Python版本:3.7。 安装CUDA 搜索cuda download到CUDA官网下载相应的本地安装版本,安装好后在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\版本号\bin...

2019-02-15 22:42:21

阅读数 123

评论数 5

提示
确定要删除当前文章?
取消 删除
关闭
关闭