Python 如何使用中间输出保存/加载模型

Python 如何使用中间输出保存/加载模型,python,keras,Python,Keras,我正在用Keras编写自动编码器: inputs = Input((n_channels,)) l1 = Dense(40, activation="relu")(inputs) l2 = Dense(19)(l1) l3 = Dense(40, activation="relu")(l2) training_layer = Dense(n_channels)(l3) unify_layer = Model(inputs=inputs, outputs=l2) training_layer =

我正在用Keras编写自动编码器:

inputs = Input((n_channels,))
l1 = Dense(40, activation="relu")(inputs)
l2 = Dense(19)(l1)
l3 = Dense(40, activation="relu")(l2)
training_layer = Dense(n_channels)(l3)
unify_layer = Model(inputs=inputs, outputs=l2)
training_layer = Model(inputs=inputs, outputs=training_layer)
我使用
training\u layer
进行培训,使用
unify\u layer
进行预测,因此当我保存后继续学习时,我希望能够访问两个端点

[根据Marcin的评论进行编辑]
Model.save
仅允许保存一个模型。当我打电话时:

unify_layer.save("unify")
training_layer.save("training")
然后

unify_layer = load_model("unify")
training_layer = load_model("training")

两层不再链接,即当我训练
训练层
时,
统一层
没有训练。

哦,我实际上可以使用
保存权重
加载权重
方法:

class Autoencoder():
    def __init__(self):
        inputs = Input((n_channels,))
        l1 = Dense(40, activation="relu")(inputs)
        l2 = Dense(19)(l1)
        l3 = Dense(40, activation="relu")(l2)
        training_layer = Dense(n_channels)(l3)
        self.unify_layer = Model(inputs=inputs, outputs=l2)
        self.training_layer = Model(inputs=inputs, outputs=training_layer)

    def save(self, filename):
        self.unify_layer.save_weights("unify_" + filename)
        self.training_layer.save_weights("training_" + filename)

    def load(self, filename):
        self.unify_layer.load_weights("unify_" + filename)
        self.training_layer.load_weights("training_" + filename)

您所说的
model.save
仅允许一个模型是什么意思?