CNN中常见卷积操作输出计算

  • 一般卷积计算输出计算, ,其中N为输入N×N图像的一边长、Pad为Padding填充数、kernal为卷积核(一般3×3)的单边数、stride为kernal的移动步长。
这里需要注意,M为向下取正,所以当(P=1, K=3, S=2)时,N=5与N=6计算得到M都为3
  • Dilated卷积输出计算, ,其中dilaterate就为空洞数、核间隔( )。就是k放大后计算一般卷积输出。

  • Transpose卷积输出计算,
这里需要注意的是TransCONV操作一般会指定 output_shape,因为例如对(3,3,1)做反卷还原,它的原始输入既可能是(5,5, 1)也可能为(6, 6, 1)。

在一般编程框架中,Padding参数为(Full=2, SAME=1, valid=0), 注意发现当卷积核为偶数时,计算公式在程序里就不对了,因为程序里(tensorflow)SAME表示输入输出大小一致,所以这时可以将SAME=2看待。一般不会用偶数卷积核(4X4)

个人理解,欢迎指教,谢谢。

CNN中常见卷积操作输出计算_第1张图片

参考:CNN之间的计算,TensorFlow】tf.nn.conv2d_transpose是怎样实现反卷积的?,如何理解深度学习中的deconvolution networks?,如何理解空洞卷积(dilated convolution)?, tensorflow学习笔记(三十二):conv2d_transpose ("解卷积"),网易云课堂-卷积神经网络

这个网页可以点开来看下,做的挺好 https://distill.pub/2016/deconv-checkerboard/

你可能感兴趣的:(CNN)