python - 如何在 keras 和 python 中保存和使用经过训练的模型

标签 python tensorflow keras

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

保存模型:

    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 的结果,或者我们是否必须在启动应用程序后再次训练模型?

请帮助我们!提前致谢。

最佳答案

根据模型的架构,某些层在评估期间可能不处于事件状态。这些层可以是 Dropout 或 BatchNormalization。因此,结果可能会有所不同。

关于python - 如何在 keras 和 python 中保存和使用经过训练的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212637/

相关文章:

tensorflow - Keras 视频帧预测的输出维度低于输入维度

python-3.x - Early Stopping,模型经历了多少个epoch?

python - 如何在 Python Selenium 中实现类似 TestNG 的功能或在一个测试套件中添加多个单元测试?

python - 计算 numpy memmap Infinity 输出的均值和方差

python - 模型编译部分的 RMSprop 优化器,在 keras 中不起作用

python - Keras模型训练内存泄漏

python - 在CNN代码中添加图像增强功能以​​提高准确性

python - Keras:模型预测,检查输入形状时出错

Python - 解析 graphql,添加一些东西,然后返回查询字符串

python - 使用 bool 数组从列表中删除项目