在我的模型中,层的形状为[None, None, 40, 64]
。我想将其重塑为[None, None, 40*64]
。但是,如果我只是执行以下操作:
reshaped_layer = Reshape((None, None, 40*64))(my_layer)
抱怨None values not supported
并引发错误。
(请注意,这不是tf.keras
,这只是Keras)。
答案 0 :(得分:1)
首先,您传递给Reshape
层的参数是批次中一个样本的期望形状,而不是整个批次的样本。因此,由于批次中的每个样本都是3D张量,因此该参数还必须仅考虑该3D张量(即,不包括批次轴)。
第二,您可以将-1
用作仅一个轴的形状。它告诉Reshape
层根据您提供的其他轴的形状自动推断该轴的形状。因此,考虑到这两点,应该是:
reshaped_out = Reshape((-1, 40*64))(layer_out)