我有两个keras模型,它们共享某些层次结构,我想将它们的权重保存到hd5文件中。如果我单独保存这两个模型,我认为这些共享层次结构会被保存两次,占用了磁盘上的双倍空间。如何在一个文件中保存它们呢?谢谢!
layer1
和layer2
,则您需要创建一个模型,其中输入层为layer1
,输出层为layer2
。 layer2
的输出将成为两个模型的输入。shared_model
、model1
和model2
模型,那么您可以通过将shared_model
的输出作为model1
和model2
的输入来创建两个用于训练或推断的模型。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)
combined_model1
或combined_model2
,或者将它们用于推理。combined_model1
时保存shared_model
和model1
的检查点,您可以使用alt-model-checkpoint库创建一个回调函数。