python - 如何在 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 的结果,或者我们必须在启动应用程序后再次训练模型?
请帮助我们!提前致谢。
解决方案
根据模型的体系结构,某些层可能在评估期间不活动。这样的层可以是 Dropout 或 BatchNormalization。由于这个结果可能会有所不同。
推荐阅读
- scala - 多项目设置 - 未检测到主类
- java - 如何创建接受参数并验证页面对象的页面标题的通用黄瓜步骤
- php - 仅当数组的某些元素具有相同值时才增加变量计数 - PHP
- python - NFQueue/Scapy Man in the Middle
- python - 在 Keras 中实现 2D 最大子数组函数作为自定义损失函数
- sql - 使用 SQL 平衡环境监视器
- javascript - 意外的 Javascript 数组行为
- ruby - 我怎样才能使用这个reduce方法使用一个起点?
- html - 需要将图像放在列表旁边
- flutter - 如何在离线模式下从 Firestore 存储/检索 DocumentSnapshot 列表?