我正在尝试将使用的网络从使用tf-slim的conv2d转换为使用tf.layers.conv2d,因为看起来tf.layers是更受支持且面向 future 的选项。函数签名非常相似,但是两者在算法上有什么不同?我得到的输出张量尺寸与预期的不同。
x = tf.layers.conv2d(inputs=x,
filters=256,
kernel_size=[3,3],
trainable=True)
与此相反:
x = slim.conv2d(x, 256, 3)
最佳答案
I'm getting different output tensor dimensions than expected.
这是由于以下事实:默认情况下,slim.conv2d使用相同的填充,而tf.layers.conv2d使用有效的填充。
如果要重现完全相同的行为,请使用以下正确的实现:
x = tf.layers.conv2d(x, 256, 3, padding='same')
关于python - tf.layers.conv2d和tf.contrib.slim.conv2d之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52267314/