0
我有以下代碼片段來做deconv。Tensorflow conv2d_transpose形狀
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]和填充是 'SAME'
但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())
但是這是爲deconv。我應該保持重量的原始形狀嗎? – ATANG
據瞭解,你試圖將深度128的x變換爲深度64的另一個張量。所以,你應該使用[3,3,128,64]的形狀。 –