【问题标题】:Problem in understanding graphs by trained model通过训练模型理解图的问题
【发布时间】:2020-05-26 07:57:38
【问题描述】:

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

【问题讨论】:

    标签: python matplotlib machine-learning keras conv-neural-network


    【解决方案1】:

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

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

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

    【讨论】:

    • 先生,感谢您的指导。先生,我已经在使用 ADAM。先生,我想知道为什么模型在已经达到 80% 的准确率时看起来没有经过良好的训练。先生,您能解释一下模型损失的表现吗?
    • @MirzaMunib 你的意思是用测试集获得的acc,对吧?您可以尝试将 epoch 的数量从 50 增加到 100,看看它是否有所改善。如果您指出您正在处理的数据类型,我会尽力为您提供更好的帮助。
    • 先生,我有一个宏观木材的数据集。它由每个物种 1000 张图像组成。
    • 您正在训练的模型的确切架构是什么?以及数据的特点?
    • 先生,您能把您的电子邮件或其他社交网站链接发给我吗?我们可以在那里交谈,我可以给您发照片
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2019-12-11
    • 1970-01-01
    • 2017-08-19
    • 2023-04-04
    • 2020-02-23
    相关资源
    最近更新 更多