我试图了解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中会是什么,并且有一个通用公式来计算它们吗?
答案 0 :(得分:0)
不幸的是,没有这样的公式。如果您陷入了具有张量流的不对称填充(即上下之间的填充不同),则无法在Caffe中重现该填充。有关更多详细信息,请参见this。
为了避免此问题,我建议在卷积之前添加显式对称填充(通过tf.pad),并使它们“有效”,而不是“相同”。当然,这只有在您自己设计和训练模型的情况下才有可能。