相关疑难解决方法(0)

tensorflow的tf.nn.max_pool中'SAME'和'VALID'填充有什么区别?

什么是"相同"和"有效"填充之间的区别tf.nn.max_pooltensorflow

在我看来,'VALID'意味着当我们做最大池时,边缘外没有零填充.

根据深度学习的卷积算法指南,它表示池操作符中没有填充,即只使用'VALID' tensorflow.但是什么是最大池的"相同"填充tensorflow

python deep-learning tensorflow

265
推荐指数
14
解决办法
20万
查看次数

带有 padding='SAME' 的 Tensorflow/Keras Conv2D 层表现奇怪

我的问题:

我进行的一个简单的实验表明,在 Keras/TF 中的 conv2d 层中使用与在前面的零填充层中padding='SAME'使用不同。padding='VALID'

  1. 这怎么可能?
  2. Keras/TF 是否在张量周围对称地填充零?

实验说明 - 如果您有兴趣进一步阅读:

我使用该onnx2keras包将我的 Pytorch 模型转换为 keras/TF。

onnx2keras遇到 ONNX 模型中的卷积层时,它会将其转换为带填充的padding > 0Keras 层(即无填充!),前面是 Keras层。这非常有效,并且返回与 Pytorch 网络产生的输出相同的输出。Conv2DvalidZeroPadding2D

我仍然觉得奇怪的是它不简单地使用padding='SAME',因为大多数参考文献都说 Keras/TF 使用零填充,就像 Pytorch 一样。

尽管如此,我还是onnx2keras对其进行了修补并使其生成Conv2D层,padding='SAME'而不是'VALID'使用前面的零填充层进行填充的现有解决方案。这使得生成的模型返回的输出与具有零填充层的输出不同,当然也不同于我的 Pytorch 模型,在补丁之前它是相同的。

conv-neural-network keras tensorflow zero-padding

4
推荐指数
1
解决办法
3686
查看次数