【问题标题】:Keras 1.2.2 model inside other modelKeras 1.2.2 模型在其他模型中
【发布时间】:2019-11-07 22:29:12
【问题描述】:

我有一段 Keras 2.3 代码,它构建:一个编码器、一个解码器,并使用功能 API 和这个方法将它们合并成一个模型(自动编码器):

def merge_encoder_decoder(encoderModel, decoderModel):
    input_img = encoderModel.input
    output = decoderModel(encoderModel.output)
    return Model(input_img, output)

这样做,当我训练合并模型时,编码器和解码器模型中的权重也会更新。我需要这种行为,因为我在以后的过程中单独使用了编码器。

现在我想尝试将这个模型的训练过程分布在一个 Hadoop 集群上。为此,我选择了Analytics Zoo (0.6.0) 框架,支持使用 Spark 进行分布式训练并提供一些高级 API 来构建模型。

我的问题是:Analytics Zoo 最多支持 Keras 1.2.2,但我找不到在此版本中重现我的 merge_encoder_decoder 函数行为的方法。更具体地说,在 Keras 1.2.2 中,功能模型似乎没有“.input”或“.output”属性(应该返回相应的张量),而且我在Keras 2.3 的文档也是。

那么有没有办法在 Keras 1.2.2 中做我想做的事?

谢谢

【问题讨论】:

    标签: python keras neural-network


    【解决方案1】:

    尝试使用您自己的显式输入层:

    def merge_encoder_decoder(encoderModel, decoderModel):
        input_img = layers.Input(image_shape)
        z = encoderModel(input_img)
        output = decoderModel(z)
        return models.Model(input_img, output)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      相关资源
      最近更新 更多