将tensorflow填充值转换为caffe填充值的公式?

时间:2018-12-20 16:20:56

标签: tensorflow caffe convolution

我试图了解caffe和tensorflow的填充差异。

我已阅读以下文章:

https://github.com/Microsoft/MMdnn/wiki/Error-in-mobilenet-conversion-from-Tensorflow-to-Caffe-Different-way-of-padding https://github.com/BVLC/caffe/issues/1318

从这些我知道,tensorflow进行不对称填充,而caffe进行对称填充。

我的问题是-如果您具有张量流模型的卷积层的填充值,如何将它们转换为caffe卷积层中的等效填充值? 公式是什么?

For example (Tensorflow model):

Input = 224x112x3

Convolution - 7x7x64 ; stride 2; SAME padding

Output size = 112x56x64

张量流填充是(不对称的):

Padding top   : 2
Padding bottom: 3
Padding left  : 2
Padding right : 3

这些填充值在caffe中会是什么,并且有一个通用公式来计算它们吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,没有这样的公式。如果您陷入了具有张量流的不对称填充(即上下之间的填充不同),则无法在Caffe中重现该填充。有关更多详细信息,请参见this

为了避免此问题,我建议在卷积之前添加显式对称填充(通过tf.pad),并使它们“有效”,而不是“相同”。当然,这只有在您自己设计和训练模型的情况下才有可能。