有用就点个赞
怎么理解 nn.Conv2d 参数
conv_layer = nn.Conv2d(in_channels=1, out_channels= 10 // 2, kernel_size=3, stride=2, padding=0, bias=False)
in_channels
in_channels 可以设置成1,2,3,4等等都可以,一般来说做图像识别的时候,先使用图片解析工具把一个彩色图片变成三个通道的图片,所以一张图片对应有三张图,in_channels 一般来说等于3,当然你可以发明一个四通道图片,in_channels就等于4。又或者你直接使用原图,那么in_channels 的值就相当于有多少张不同的图片,怎么理解都可以。
padding 和 stride
红圈移动步伐为2(stride=2),移动红圈的时候超出了,蓝色框默认设置为全0,你也可以设置成其他数字(padding=0)
矩阵和红圈的计算方式,简单的例子
计算:
卷积核的数量,由 in_channels 决定,in_channels 是多少,就生成多少个卷积核。
out_channels
这个数字一般不是乱填的,它的值就是原始图片矩阵的尺寸,经过和卷积核计算之后,生成的特征图的尺寸,这跟原始图片尺寸,卷积核尺寸,步伐大小有关,一般计算方式为。
当然你也可以乱填,但是当 out_channels小了,但是采集的数据肯定遗漏,当 out_channels 大了,那么就采集到了无用数据。下图:
当 out_channels 等于 4,那么下面拿那块紫色区域就漏采了
当原图较小,out_channels 等于 4,那么下面就多采样了很多 0 回来