【问题标题】:Reduce (None, None, 2) to (None,2) using Keras使用 Keras 将 (None, None, 2) 减少到 (None,2)
【发布时间】: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


【解决方案1】:

解决方案

tf.reshape(X, shape=[tf.shape(X)[0]*tf.shape(x)[1],2])

我使用 tf.shape() 调用 None 维度并将它们相乘。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多