input的格式:batch, channel, width, height
- batch即为configuration中的batch size, 每一次从dataloader中取出来的数量
- channel:也被称为feature map, 图片通道的数量,MNIST黑白的为单通道,彩色图片为3通道RGB, 经过卷积可以由更多的channel,由核的个数决定
- width和height为图片的宽和高
卷积的直观理解
-
Conv2d可以直接控制channel的数量的改变,但是图像的大小的变化需要自己来根据kernel的大小还有padding,stride来实际计算,
kernel = 3*3会减2,kernel = 4*4会减3 -
卷积可以理解为:图片不断变小(如果没有padding, stride的话),然后channel也即feature map的数量不断改变
-
因为是一层叠一层,所以Conv2d的前两个参数input_channel和output_channel会有顶针的形式出现:(a,b), (b,c),(c,d)最后图片的channel的数量, 由a变为了d
-
下面的例子就是从nc(原始的channel的通道),到ndf,又经过了(ndf,ndf*2),(ndf*2,ndf*4)…最后变成了1
卷积代码实例:torch.nn.Conv2d
-
Conv2d的参数:input_channel,output_channel,kernel_size, stride, padding,…
-
来自pytorch dcgan tutorial的卷积代码: 注意nn.Conv2d部分:
class Discriminator(nn.Module):
def __init__(self, ngpu):
super