我有两个共享图层的keras模型,我想将其权重保存在hd5文件中。如果我分别保存两个模型,我认为共享层将使用磁盘空间的两倍保存两次。如何将其保存在唯一的文件中?
谢谢!!
小智 1
您可以将共享层放入单独的模型中。例如,如果共享层为:layer1和layer2,则您必须创建一个模型,其中输入层为layer1,输出层为layer2。的输出layer2将是两个模型的输入。
如果共享层是两个模型中的第一层,那么任务会变得更容易,并且在分离共享层后您将拥有三个模型。如果这些层位于每个模型的输入层和输出层之间,那么您还必须在每个模型中的共享层之前分离这些层,这将导致两个额外的模型。
为了轻松实现这一目标,您可以使用Keras 功能 API将一个模型的输出作为另一个模型的输入来组合多个模型。例如,如果您有模型shared_model、model1和,那么您可以通过将 的输出作为和 的model2输入来创建用于训练或推理的两个模型:shared_modelmodel1model2
input_layer = Input(input_shape)
shared_output = shared_model(input_layer)
combined_output1 = model1(shared_output)
combined_model1 = Model(inputs=input_layer, outputs=combined_output1)
combined_output2 = model2(shared_output)
combined_model2 = Model(inputs=input_layer, outputs=combined_output2)
Run Code Online (Sandbox Code Playgroud)
这样您就可以训练combined_model1或combined_model2使用它们进行推理。
为了能够在训练时shared_model保存模型的检查点,您可以使用alt-model-checkpoint库创建回调。model1combined_model1
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |