![](/img/trans.png)
[英]the Keras layers(functions) corresponding to tf.nn.conv2d_transpose
[英]Tensorflow's tf.nn.conv2d_transpose parameters
最近我一直在尝试了解tensorflow的tf.nn.conv2d_transpose
,但是我很难理解它的输入参数。 定义为:
tf.nn.conv2d_transpose(value, filter, output_shape, strides, padding='SAME')
例如,假设我有一个大小为[batch_size, 7, 7, 128]
的图像,并且想要将其转换为[batch_size, 14, 14, 64]
。 然后output_shape=[batch_size, 14, 14, 64]
, output_shape=[batch_size, 14, 14, 64]
strides=[2,2]
,但是我不知道如何获得滤波器的形状。 有什么想法吗?
此外, padding="SAME"
对conv2d_transpose
如何conv2d_transpose
? 是应用于输出图像还是输入?
对于有关过滤器形状的第一个问题,我将使用面向对象的版本tf.layers.Conv2DTranspose
并查看kernel
属性以找出过滤器形状:
>>> import tensorflow as tf
>>> l = tf.layers.Conv2DTranspose(filters=64, kernel_size=1, padding='SAME', strides=[2, 2])
>>> l(tf.ones([12, 7, 7, 128]))
<tf.Tensor 'conv2d_transpose/BiasAdd:0' shape=(12, 14, 14, 64) dtype=float32>
>>> l.kernel
<tf.Variable 'conv2d_transpose/kernel:0' shape=(1, 1, 64, 128) dtype=float32_ref>
>>>
上第二填充问题, conv2d_transpose
计算的梯度conv2d
。 由于conv2d
其输入,因此conv2d_transpose
需要填充其输出以适合渐变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.