python - 通过训练模型理解图的问题
问题描述
h 我正在学习机器学习。我在 3 层 CNN 上训练了 2 个类。我得到的结果:
Epoch 50/50
46/46 [==============================] - 209s 5s/step - loss: 0.3725 - accuracy: 0.8489 - val_loss: 0.3060 - val_accuracy: 0.8000
先生,我试图通过历史来绘制并得到这两个图表,有人可以向我解释这些图表所解释的内容,如果有问题我应该怎么做才能最小化它。谢谢你。
import matplotlib.pyplot as plt
print(history.history.keys())
# summarize history for accuracy
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# summarize history for loss
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
解决方案
它向您展示了模型的演化图。
在训练期间,一部分训练数据被保留用于验证。这意味着,当每个 epoch 被训练时,模型的状态都会使用保留的验证数据进行评估。因此,两张图都显示了在 acc 和 loss 中获得的值。
先验似乎训练还不够,因为当达到 50 个 epoch 时,似乎没有一条曲线变平。一种选择是增加 epoch 的数量。另一个是让模型更快地达到“最佳解决方案”,为此您可以使用更强大的优化器,例如 ADAM 或 RMSprop。
推荐阅读
- c# - 如何在excel底部添加额外的信息栏?
- java - 根据条件拆分对象集合
- c# - 在 Windows 10 上将 .NET Core 控制台应用程序切换到全屏模式
- amazon-web-services - EC2 实例连接:设置实例连接时出现问题
- javascript - 为什么在 Javascript 中使用 async 而不使用 await?
- sql - 使用 LEFT JOIN 和 ON 语句仅选择最接近的值
- c# - 如何使统一的 Random.Range() 更加随机?
- vim - Vim 光标轨迹
- logging - 哪些层应该记录异常?
- python - Pyplot一一改变颜色不起作用