我有以下代码片段来进行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())
答案 0 :(得分:0)
卷积的权重变量的形状应为[height, width, input_channels, output_channels]
。因此,在创建self.w
时,只需尝试交换两个最后的形状参数。