调整具有自适应形状的张量会导致意外的结果形状

时间:2019-06-04 13:12:29

标签: python tensorflow keras

我正在尝试重塑形状为(?,32,32,64)的张量。 结果张量应为(?* 32 * 32,64)。 Tensorflow给了我类似(?,?)之类的东西,这在我看来是出乎意料的,因为最后一个轴的尺寸定义明确。

def function(x):
    shape = tf.shape(x)
    x = tf.reshape(x, (shape[0] * shape[1] * shape[2], shape[3]))

重塑(?,32,32,64)会导致(?,?)

有没有办法解决这个问题? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

我相信这是因为您正在通过使用tf.shape(x)返回动态形状。如果使用x.get_shape(),则应返回静态形状。但是,您需要提供或定义批处理大小才能进行整形操作。