首页 > 解决方案 > 通过训练模型理解图的问题

问题描述

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()

在此处输入图像描述

标签: pythonmatplotlibmachine-learningkerasconv-neural-network

解决方案


它向您展示了模型的演化图。

在训练期间,一部分训练数据被保留用于验证。这意味着,当每个 epoch 被训练时,模型的状态都会使用保留的验证数据进行评估。因此,两张图都显示了在 acc 和 loss 中获得的值。

先验似乎训练还不够,因为当达到 50 个 epoch 时,似乎没有一条曲线变平。一种选择是增加 epoch 的数量。另一个是让模型更快地达到“最佳解决方案”,为此您可以使用更强大的优化器,例如 ADAM 或 RMSprop。


推荐阅读