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