【发布时间】:2020-12-24 01:29:08
【问题描述】:
解决了!
我正在使用带有功能 API 的 keras,并且我有一个 X = (None, 2) 张量的张量,我需要将它与 Y = (None,7) 张量连接以获得 (None,9) 张量.问题是 X 和 Y 的第一个维度是未知的,所以我将不得不重复 X 可变次数 z 以使其等于 Y。我已经想出了如何使用 RepeatedVector 用未知 z 重复 X 但这增加了一个额外的维度(无,无,2)。所以现在我需要一种方法将 (None, None, 2) 展平为 (None, 2),这样我就可以将它们连接起来,留下一个可以放入密集层的对象 (None, 9)。
所以我已经尝试过......
1 - tf.squeeze(X) 但这会删除所有维度(无,无)
2 - tf.keras.layers.Reshape 但这不接受我需要的输出形状的 None 参数,因为 y 是可变的
3 - K.flatten 但这使它成为一维。
4- 尝试向 Y = (1,None,7) 添加维度会产生奇怪的错误。
解决方案:
tf.reshape(X, shape=[tf.shape(X)[0]*tf.shape(x)[1],2])
我使用 tf.shape() 调用 None 维度并将它们相乘。
【问题讨论】:
-
当您解决自己的问题时,please answer it。 48 小时后,您甚至可以接受自己的答案。
标签: python tensorflow keras