繁体   English   中英

Tensorflow的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM