Tensorflow,有没有办法指定沿轴的填充?

标签 tensorflow convolution

我想在 tensorflow 中对图像执行卷积。我希望内核与图像一样高并且非常薄。例如:

kernel_size = [200, 24]
image_size = [200, 400]

如果我使用填充“SAME”,我会得到一个 [200, 400] 图像,而不是输出矢量,因为 tensorflow 会在顶部和底部填充图像,并与填充图像上的内核进行卷积。

另一方面,如果我使用填充“VALID”,顶部和底部的问题就会消失,但它也不会完全覆盖图像的水平方向,这样,如果图像的水平尺寸不能被内核维度整除,你会失去它的一部分。

有没有办法在顶部和底部执行“VALID”填充,以及在左侧和右侧执行“SAME”填充?或者还有其他方法可以做到这一点吗?

最佳答案

使用 tensorflow 卷积函数的默认填充选项,无法做到这一点,您必须手动填充张量以使水平尺寸可被内核尺寸整除。

手动填充后,使用有效填充,以免手动填充的像素被视为填充以外的任何内容

要手动填充张量,您可以使用 tf.concat具有您想要的形状和值的常量张量。如果您的图像始终具有相同的尺寸,那么这就不难弄清楚。

关于Tensorflow,有没有办法指定沿轴的填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45238939/

相关文章:

python - 我在numpy中实现的多 channel 一维卷积有什么问题(与tensorflow相比)

ios - 使用 "large"内核避免依赖纹理读取

image - 在 Torch (lua) 中可视化中间层中的图像

python - 在 Tensorflow 中,如何将一个张量添加到另一个具有不同形状的张量?

python - 如何解决 "ValueError: A ` Concatenate` 层需要具有匹配形状的输入(除了连接轴之外)”?

python - Python 绑定(bind)在 TensorFlow 源代码中的何处调用核心 C++ 库?

python - 在终端中给出导入 tfrecord 文件的正确路径

python - 从卷积网络中删除顺序后,我得到 : "TypeError: ' Tensor' object is not callable"

python - Tensorflow 中的扩张卷积

python - 在 PyTorch 中将值从一个张量复制到另一个张量的最快方法是什么?