首页 > 解决方案 > 如何在 keras 和 python 中保存和使用经过训练的模型

问题描述

我们想保存一个训练有素的模型,我们可以在应用程序中使用它。所以问题是,如果我们加载模型,准确率会很低。请参阅下面的代码。

要保存模型:

    model.save("TrainedModel\\emotionDetector.h5")

加载模型:

    model = models.load_model("TrainedModel\\emotionDetector.h5")
    loss, acc = model.evaluate(X,  y, verbose=1)
    print('Restored model, accuracy: {:5.2f}%'.format(100*acc), loss)

保存前的准确度和损失:损失:0.2324 - 准确度:0.9202 - val_loss:1.3789 - val_accuracy:0.6353

加载后的准确率和损失:恢复模型,准确率:36.92% 损失:nan

所以我们知道,model.fit() 和 model.evaluate() 之间是有区别的。我们如何改进 model.evaluate 的结果,或者我们必须在启动应用程序后再次训练模型?

请帮助我们!提前致谢。

标签: pythontensorflowkeras

解决方案


根据模型的体系结构,某些层可能在评估期间不活动。这样的层可以是 Dropout 或 BatchNormalization。由于这个结果可能会有所不同。


推荐阅读