做一个简单的笔记
1.卷积层
nn.Conv2d()
就是PyTorch中的卷积模块,常用参数5个,是:
in_channels
, out_ channels
,kernel_ size
, stride
, padding
;
除此之外还有参数:
dilation
, groups,
bias。
下面来解释每个参数的含义:
inchannels
对应的是输人数据体的深度;
out_channels
表示输出数据体的深度;
kernel size
表示滤波器(卷积核)的大小,使用一个数字来表示高和宽相
同的卷积核,比如kernel_ size=3
,;
不同的数字表示高和宽不同的卷积核,比如kernel size=(3, 2)
;
stride
表示滑动的步长;
padding=0
表示四周不进行零填充;
padding=1
表示四周进行1个像素点的零填充;
bias
是一个布尔值,默认bias=True,
表示使用偏置;
groups表
示输出数据体深度上和输人数据体深度上的联系,默认groups=1,
也就是所有的输出和输入都是相关联的,如果groups=2
, 这表示输人的深度被分割成两份,输出的深度也被分割成两份,它们之间分别对应起来,所以要求输出和输人都必须要能被groups
整除;
dilation
表示卷积对于输人数据体的空间间隔,默认dilation=1
。
2.池化层
nn.MaxPool2d()
表示网络中的最大值池化,参数有:
kernel_ size
,stride
,padding
,dilation
,return_ indices
,ceil_ mode
;
下面解释它们各自的含义:
kernel_ size, stride, padding, dilation
之前卷积层已经介绍过了,是相同的含义;
return_ indices
表示是否返回最大值所处的下标,默认
return_ indices=False
;
ceil_ mode
表示使用一些方格代替层结构,默认ceil_ mode=False,
一般都不会设置这些参数。
nn.AvgPoo12d()
表示均值池化,参数和nn.MaxPoo12d()
类似,但多一个参数count_ incl ude_ pad
, 这个参数表示计算均值的时候是否包含零填充,默认count_ include_ pad=True。
一般使用较多的就是nn .MaxPool2d()
和nn. AvgPool2d()
,另外PyTorch还提供了一些别的池化层,如nn. LPPoo12d()、nn.AdaptiveMaxPool2d()
等,这些运用较少,感兴趣的读者可以去查看官方文档。