【问题标题】:In Keras, how to use Reshape layer with None dimension?在 Keras 中,如何使用无维度的 Reshape 图层?
【发布时间】:2019-04-25 15:46:49
【问题描述】:

在我的模型中,图层的形状为[None, None, 40, 64]。我想把它改造成[None, None, 40*64]。但是,如果我只是执行以下操作:

reshaped_layer = Reshape((None, None, 40*64))(my_layer)

它会抛出一个错误,抱怨None values not supported

(澄清一下,这不是tf.keras,这只是 Keras)。

【问题讨论】:

标签: python keras reshape keras-layer


【解决方案1】:

首先,您传递给Reshape 层的参数是批次中一个样本的所需形状,而不是整批样本。因此,由于批次中的每个样本都是 3D 张量,因此参数还必须仅考虑该 3D 张量(即不包括批次轴)。

第二,你可以使用-1作为只有一个轴的形状。它告诉Reshape 层根据您提供的其他轴的形状自动推断该轴的形状。所以考虑到这两点,那就是:

reshaped_out = Reshape((-1, 40*64))(layer_out)

【讨论】:

  • 这给出了 - IndexError: list assignment index out of range
  • @ARPITPRASHANTBAHETY 考虑到该错误,它很可能与其他地方有关。你确定这是由包含Reshape 层的行引起的吗?无论如何,您可以提出一个新问题并提供您的代码以及完整的错误消息,以便其他用户可以看到它并为您提供帮助。
猜你喜欢
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
相关资源
最近更新 更多