【问题标题】:Loading ensemble keras model gives ValueError: Invalid input_shape argument (None, 224, 224, 3): model has 0 tensor inputs加载集成 keras 模型给出 ValueError: Invalid input_shape argument (None, 224, 224, 3): model has 0 张量输入
【发布时间】:2020-03-06 14:37:29
【问题描述】:

我的模型是 2 个不同的 keras 模型的集合,这些模型连接到相同的输入层,并在组合时具有 2 个输出层。 这两个模型都是预训练的,我正在尝试创建一个并行架构。 我的架构是: `

model_input = Input(shape=(224,224,3), name="model_input")
gender_model_copy.layers.pop(0)
color_model_copy.layers.pop(0)
color_model_ens1 = color_model_copy(model_input)
gender_model_ens1 = gender_model_copy(model_input)
model_f = Model(input=[model_input], output=[color_model_ens1,gender_model_ens1])
model_f.save('path')

`

模型已编译,我也可以进行预测,但是当我保存它并尝试重新加载它时,我得到了:

ValueError: Invalid input_shape argument (None, 224, 224, 3): model has 0 tensor inputs. 完整跟踪:Github gist link.

我有一个使用custom_objects={'Scale':Scale()} 添加的自定义层 keras.models.load_model 中的参数 我的keras版本是2.2.5,tensorflow版本是1.15

编辑:我意识到问题在于我让layer.trainable=False 无法训练层,如果不这样做,我就能够加载模型而不会出现错误。我仍然想知道为什么会这样。

【问题讨论】:

  • 好吧,你在弹出时删除了输入层,你为什么要这样做?完全没必要
  • @MatiasValdenegro,我用较新的替换它,我尝试不删除它,但结果相同。
  • 然后做一个可重现的例子
  • 同意 Matias ......没有理由弹出层。 (而且我确实相信弹出是根本没有得到很好支持的东西,尤其是在模型的开头)

标签: python tensorflow keras keras-layer keras-2


【解决方案1】:

如果您重命名其中一个图层,则可能会出现问题。停止重命名。

【讨论】:

  • 您好,抱歉,您的回答更适合作为评论。如果您认为这是确切的问题,您可以展示一些工作示例,其中重命名输入层导致错误并且不这样做解决了它。这将使它成为一个好的或至少一个正确的答案。
猜你喜欢
  • 2022-09-30
  • 1970-01-01
  • 2021-03-30
  • 2021-09-03
  • 1970-01-01
  • 2022-06-15
  • 2021-05-11
  • 2021-03-30
  • 2022-06-21
相关资源
最近更新 更多