tf.keras.layers.Conv2DTranspose在跨步和填充时如何表现?

时间:2018-12-25 11:41:26

标签: tensorflow

虽然TensorFlow中的卷积层具有完整的描述https://www.tensorflow.org/api_guides/python/nn#Convolution,但转置卷积没有一个。

尽管tf.keras.layers.Conv2DTranspose引用了https://arxiv.org/pdf/1603.07285.pdf,但并不完整。

是否有任何文档描述tf.keras.layers.Conv2DTranspose的行为?

1 个答案:

答案 0 :(得分:-1)

Conv2DTranspose通常用作图像/功能图的上采样。下面的代码使用1X1过滤器内核来显示如何用零填充输入。该代码适用于tensorflow 2.0,在tensorflow1.x中添加enable_eager_execution()

data = tf.ones([2,2],tf.float32,"input_data")
input_layer = tf.reshape(data, [-1, 2, 2, 1])
transpose2d = layers.Conv2DTranspose(1, (1, 1), kernel_initializer='ones', strides=(2, 2), padding='valid', use_bias=False)
x = transpose2d(input_layer)
print(x)

输入为

  • 1,1
  • 1,1

x是

  • 1,0,1,0
  • 0,0,0,0
  • 1,0,1,0
  • 0,0,0,0

您可以更改步幅值以查看差异