Ich habe den folgenden Codeschnipsel zu deconv zu tun.Tensorflow conv2d_transpose Shape
x.get_shape() gibt mir (?, 14, 14, 128)
self.w.get_shape() gibt mir (3, 3, 64, 128)
output_shape sein sollte (?, 14, 14, 64) ist
Filtergröße [3, 3], stride ist [1, 1, 1, 1] und Polsterung 'SAME'
aber h.get_shape() gibt mir (?,?,?, 128), die ich erwartet hatte (?, 14, 14, 64).
Können Sie mir helfen zu erkennen, wo der Fehler liegt?
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())
Aber das ist für deconv. Soll ich die ursprüngliche Form der Gewichte beibehalten? – ATANG
Soweit Sie wissen, versuchen Sie, x mit der Tiefe 128 in einen anderen Tensor mit der Tiefe 64 zu transformieren. Sie sollten also die Form von [3, 3, 128, 64] verwenden. –