Pytorch实战——知识点记录(二)

Pytorch构建神经网络记录

1.Typical Loss
-mean squere error(MSE) 均方误差
在这里插入图片描述Pytorch实战——知识点记录(二)_第1张图片
pytorch中求mean squere error的梯度有两种方式:
Pytorch实战——知识点记录(二)_第2张图片
backward( )函数(这个更方便)
torch.autograd.grad()函数用法示例
-cross entropy loss

Pytorch实战——知识点记录(二)_第3张图片
-Entropy 熵
在这里插入图片描述
-cross entropy 交叉熵
cross entropy的值记为H(p,q):
Pytorch实战——知识点记录(二)_第4张图片Pytorch实战——知识点记录(二)_第5张图片
对于one-hot encoding,entropy=0,cross entropy = entropy+KL Divergence = 0+KL Divergence = KL Divergence.
Pytorch实战——知识点记录(二)_第6张图片对于分类问题为什么不使用MSE而使用cross entropy
Pytorch实战——知识点记录(二)_第7张图片
.cross_entropy()函数=softmax操作+log操作+nll_loss操作

2.链式法则

x = torch.tensor(1.)
w1 = torch.tensor(2.,requires_grad=True)
b1 = torch.tensor(1.)
w2 = torch.tensor(2.,requires_grad=True)
b2 = torch.tensor(1.)
y1 = x*w1+b1
y2 = y1*w2+b2
dy2_dy1 = torch.autograd.grad(y2,[y1],retain_graph=True)[0]
dy1_dw1 = torch.autograd.grad(y1,[w1],retain_graph=True)[0]
dy2_dw1 = torch.autograd.grad(y2,[w1],retain_graph=True)[0]
dy2_dy1*dy1_dw1
# tensor(2.)
dy2_dw1
# tensor(2.)

3.visdom可视化
在终端通过pip install visdom安装visdom
然后执行python -m visdom.server开启visdom服务,浏览器访问http://localhost:8097/
在程序中from visdom import Visdom,绘制想要的图形。

4.学习率衰减
两种实现方案,方案1:
Pytorch实战——知识点记录(二)_第8张图片

方案2:
Pytorch实战——知识点记录(二)_第9张图片
5.dropout
Pytorch实战——知识点记录(二)_第10张图片
注意在train的时候可使用dropout,在test的时候不应使用dropout,要把状态切换一下:
Pytorch实战——知识点记录(二)_第11张图片
6.卷积神经网络
-层的定义
Pytorch实战——知识点记录(二)_第12张图片
某一层通常包括了W和输出,如hidden layer 1包括了上层的权重和对应的输出。

-nn.Conv2d()
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
Pytorch实战——知识点记录(二)_第13张图片
Pytorch实战——知识点记录(二)_第14张图片

-F.conv2dPytorch实战——知识点记录(二)_第15张图片
-nn.MaxPool2d()
MaxPool2d(kernel_size, stride=None, padding=0,
dilation=1, return_indices=False, ceil_mode=False)

-interpolate()
torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode=‘nearest’, align_corners=None)
Pytorch实战——知识点记录(二)_第16张图片
-nn.BatchNorm2d()
class torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True)
-神经网络单元
通常把一个conv+bachnorm+pool+relu看作一个单元,如下
在这里插入图片描述
如果有short cut,则一个单元为:
在这里插入图片描述
-nn.Module模块
功能1:方便的调用已有的层
Pytorch实战——知识点记录(二)_第17张图片
功能2:方便的构造多层网络
Pytorch实战——知识点记录(二)_第18张图片
功能3:方便管理网络、查看参数
Pytorch实战——知识点记录(二)_第19张图片
—————————————————————————————
目前记录一些基础操作,暂时告一段落啦。

你可能感兴趣的:(Python,pytorch)