Tensorflow conv2d_transpose Shape

时间:2016-10-29 18:01:04

标签: tensorflow

我有以下代码片段来进行deconv。

x.get_shape()给了我(?,14,14,128)

self.w.get_shape()给了我(3,3,64,128)

output_shape应为(?,14,14,64)

过滤器大小为[3,3],步幅为[1,1,1,1],填充为“相同'

但是h.get_shape()给了我(?,?,?,128),我期待看到它(?,14,14,64)。

你能帮我发现错误在哪里吗?

                    print(x.get_shape())
                    print(self.w.get_shape())
                    output_shape = tf.pack([tf.shape(x)[0],
                                           self.output_size[0],
                                           self.output_size[1],
                                           self.output_size[2]])
                    h = self.activation(
                        tf.nn.bias_add(
                            tf.nn.conv2d_transpose(
                                x, self.w,
                                output_shape=output_shape,
                                strides=self.stride,
                                padding=self.padding
                            ), self.b
                        )
                    )
                    print(h.get_shape())

1 个答案:

答案 0 :(得分:0)

卷积的权重变量的形状应为[height, width, input_channels, output_channels]。因此,在创建self.w时,只需尝试交换两个最后的形状参数。