目录
一、填充
1、不太理解,为啥是更大的卷积核,可以更快减小?哦,理解了,减去的是K,K大,减得多
当我想用大的卷积核,但是我的图片小,怎么办,我想用几百个卷积层怎么办
一个办法,就是填充
2、我填充之后,我的输出是4*4,比我的输入3*3还要大呢
3、填充的取值如下,这样做,代入可以看到可以抵消,可以让我们的输入输出和原来保持一致
4、出现这种问题,层数太多太多,咋办?步幅
5、啥意思?就是说 每次多跳一点,跳两列,跳两行
6、那该怎么算最后的输出大小?有点麻烦,快看不懂了
7、www最后有点点不懂,+步幅 / 步幅 ,算是成倍减少输出形状,我先去写代码吧
二、代码实现
0、comp_conv2d 函数是补充通道数和批量大小数,再调用conv2d
1、X=X.reshape((1,1)+X.shape) 加上一个通道数和批量大小数,是为了接下来调用conv2d函数
2、Y.reshape(Y.shape[2:]) 这个得到的是一个四维的,把前面两维拿掉
3、padding = 1 ,意思是左右各填充一行
4、8+2-3+1 = 8输出还是8*8
5、stride = 2 步幅,输出减半 (8+2-3+2)/ 2= 4.5 =4, 这里是+2(加的是步幅),再向下取整
6、(8+0-3+3)/3=2 (8+2-5+4)/4=2
7、总结一下公式 (输入维度+填充(1是左右两列)-核数+步幅)/步幅
三、问题总结
- 超参数的重要程度
-
- 核大小:通常来说最重要
- 填充: 通常设置成 (核数-1)
- 步幅:大部分时候=1更好,这样可以看得更多;使用的时候是因为数据量大
-
- 卷积核的边长一般取奇数,比较好对称
- 卷积处理之后的输出维度并不是都要减半,要做很深的网络哇
- 问题16:老师,那多层的3*3卷积是不是和用不同大小的卷积核分别对原始图像做处理以后,再联合这些算出来的特征进行分类这种情况等价?
是有这个情况的,但是3*3的算的快,这和计算复杂度有关了
- 最后老师谈到钱的问题,突然觉得,有点幸运,能够学习到这种前沿的知识,这本身就是很贵很贵的,享受其中吧