首页 > 解决方案 > 何时以增量方式训练 tensorflow (2.0) 模型时调用 compile?

问题描述

我正在编写一个神经网络来进行增量训练(不是在线)。这是代码片段


output = create_model()
model = Model(inputs=values, outputs=output)
if start_epoch > 1:
    weights_list = load_model_from_pickle()
    model.set_weights(weights_list)

model.compile(loss='binary_crossentropy', optimizer='adam')
model.fit(data , label, epochs=1, verbose=1, batch_size=1024, shuffle=False)

本质上,我想加载之前训练的权重并训练更多的 epoch。我读了一些 SO 回复说调用 compile 会改变权重?还有其他方法吗?调用编译后设置权重有意义吗?如果我在多 GPU 设置中运行我的模型,答案会改变吗?

标签: pythontensorflowneural-networktensorflow2.0

解决方案


您需要编译模型,并且在重新加载模型时训练后,您不需要再次编译它。在这里阅读更多。编译函数定义了你想要的优化器、损失函数和指标。它不会改变任何权重。有关更多详细信息,请阅读此处


推荐阅读