pytorch的nn.Conv2d()参数及尺寸计算详解(与Tensorflow.nn.Conv2d相比)

参数详解

in_channels,
#输入数据的通道数(如彩色图片,一般为3)
out_channels,
#输出数据的通道数(就是我想让输出多少通道,就设置为多少)
kernel_size,
#卷积核的尺寸(如(3,2),3与(3,3)等同)
stride = 1,
#卷积步长,就是卷积操作时每次移动的格子数
padding = 0,
#原图周围需要填充的格子行(列)数,无填充的话卷积到边缘会直接忽略该边缘
dilation = 1,
#空洞卷积的空洞指数,一般默认为1即可
groups = 1,
#分组卷积的组数,一般默认设置为1,不用管
bias = True,
#卷积偏置,一般设置为False,True的话可以增加模型的泛化能力
padding_mode = 'zeros’
#设置边缘填充值为0,或别的数,一般都默认设置为0

torch.nn.Conv2d(    in_channels,  #输入数据的通道数(如彩色图片,一般为3)
					out_channels, #输出数据的通道数(就是我想让输出多少通道,就设置为多少)
					kernel_size,  #卷积核的尺寸(如(3,2),3与(3,3)等同)
					stride = 1,   #卷积步长,就是卷积操作时每次移动的格子数
					padding = 0,  #原图周围需要填充的格子行(列)数,无填充的话卷积到边缘会直接忽略该边缘
					dilation = 1, #空洞卷积的空洞指数,一般默认为1即可
					groups = 1,   #分组卷积的组数,一般默认设置为1,不用管
					bias = True,  #卷积偏置,一般设置为False,True的话可以增加模型的泛化能力
					padding_mode = 'zeros'  #设置边缘填充值为0,或别的数,一般都默认设置为0
				)

特征图尺寸计算

与TensorFlow不同的是,TensorFlow的Conv2d函数的padding超参只有“same”和“valid”两个选项,选same时,不管kernel_size如何设置,输出尺寸均为 out_size = in_size / stride,这对新手很友好,用的时候直接same就行,尺寸无脑计算。选“valid”时,公式与pytorch一样。

torch.nn.Conv2d()不同,其padding超参可以为0,1,2,计算较为麻烦,原始计算公式我就不放了(因为一般dilation =1),简化公式如下:

out_size = (in_size - K + 2P)/ S +1

其中,K为kernel_size的设置值,P为padding的设置值,S为stride的设置值

你可能感兴趣的:(库函数详解,网络搭建,tensorflow,pytorch,深度学习)