卷积神经网络之padding计算
padding的模式分为SAME和VALID两种方式。下面简单介绍一下两种方式输出shape的计算方法。
tensorflow
VALID
计算公式:
输出的大小直接用输入的大小减去卷积核大小,加1,然后除以步长,最后对结果向上取整。
假如输入的shape为7x7的,卷积核的大小为3x3,步长为2,这样计算出的输出shape为:3x3。对于边界上没有取到的数据直接舍弃掉。
SAME
计算公式
第一步,先用输入的大小除以步长,对结果向上取整。得到输出的shape。例如,input shape是7x7,kernel为3x3,stride为2。则输出的shape为:4x4。注意:padding为Same,strides为1的时候,输入与输出的shape是相等的。
第二步,根据输出shape对输入进行padding的操作。继续上一步的例子,7除以2向上取整为4,就需要将输入的shape通过padding扩展到8x8。当padding的数量为奇数的时候,在tensorflow中会在后面多padding一些。
pytorch
pytorch与tensorflow的区别是先指定padding的大小,而不是通过计算output的大小然后推算出padding大小。
这里以一个pytorch的padding函数为例说明。
ZeroPad2d
CLASS torch.nn.ZeroPad2d(padding)
使用0来填充边界。padding输入是一个int类型的tuple。如果是一个值a,则所有边界使用相同的填充,相当于输入(a, a, a, a)。如果是一个大小为4的tuple,例如:(a, b, c, d),则对应到填充的位置为(left,right,top,bottom)。
输入shape(N, C, H_in, W_in)
输出shape(N, C, H_out, W_out)
H_out = H_in + top + bottom
W_out = W_in + left + right
- 卷积神经网络输出尺寸计算
- margin与padding值设置为百分数时,其值的计算参照最近父级元素width
- (Tensorflow之十一)cnn卷积神经网络LeNet-5模型以及卷积核的计算
- 深度学习:卷积神经网络物体检测之感受野大小计算
- CNN 卷积神经网络-- 残差计算
- 卷积神经网络卷积核层输出计算公式
- 卷积神经网络传播过程中感受野的理解以及feature map size 、receptive field size的计算(代码)
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- margin-top/bottom(padding-top/bottom)百分比以祖级宽度计算
- 卷积神经网络物体检测之感受野大小计算
- 卷积神经网络里的复杂度计算
- 卷积神经网络物体检测之感受野大小计算
- 如何计算padding大小
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- 发布订阅:SELECT失败,因为下列SET选项的设置不正确:'ANSI_PADDING'。请确确保SET选项正确无误,可以用于计算列上的索引视图和/或索引......"
- 卷积神经网络卷积计算具体过程?
- 卷积神经网络中参数量的计算与模型占用显存的计算
- CSS笔记——padding,margin为百分比计算时的参照对象
- 图文解说卷积神经网络及其计算方法
- 卷积神经网络物体检测之感受野大小计算