Neural network 如何计算卷积输入形状/大小?

Neural network 如何计算卷积输入形状/大小?,neural-network,tensorflow,deep-learning,caffe,conv-neural-network,Neural Network,Tensorflow,Deep Learning,Caffe,Conv Neural Network,如果我有输出形状、过滤器形状、跨步和填充, 过滤器形状:[内核高度、内核宽度、输出深度、输入深度] 输出形状:[批次、高度、宽度、深度] strips=[1,1,1,1] padding='VALID' 我可以获得输入形状吗? 比如说, 过滤器形状:[3,3,1,1] 输出形状:[1,1,1,1] 我可以计算固定输入形状[1,3,3,1]吗?如何计算 你有计算形状的代码吗?因为我认为我不需要自己写它。这是批处理,高度+内核高度-1,宽度+内核宽度-1,输入深度 批处理开始时比较明显,最后的输入深

如果我有输出形状、过滤器形状、跨步和填充,

过滤器形状:
[内核高度、内核宽度、输出深度、输入深度]

输出形状:
[批次、高度、宽度、深度]

strips=[1,1,1,1]

padding='VALID'

我可以获得输入形状吗?

比如说,

过滤器形状:
[3,3,1,1]

输出形状:
[1,1,1,1]

我可以计算固定输入形状
[1,3,3,1]
吗?如何计算


你有计算形状的代码吗?因为我认为我不需要自己写它。

这是批处理,高度+内核高度-1,宽度+内核宽度-1,输入深度

批处理
开始时比较明显,最后的
输入深度也比较明显。要理解<代码>高度+Kelnel-Health- 1 ,请考虑如何应用内核。如果您输入的图像是10×10,并且应用了一个3×3的内核,您将在水平方向上将其应用于位置0、1、…、7,总共8个不同的位置,类似的想法适用于内核如何垂直移动,这将导致输出映射的大小
8x8
。如果你推广这个想法,你会看到输出映射的大小是
width+kernel-1,height+kernel-1
,这意味着如果你有输出映射的大小,要得到输入的大小,你需要反转操作,这将导致
width-kernel+1,height-kernel+1

这仅对填充类型“valid”有效。如果类型为“相同”,则输出将被填充以匹配输入的尺寸,因此输入形状将为
batch、height、width、input\u depht