我想在 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/