Python Matplotlib 绘制训练和验证集的准确率和损失曲线
使用 Matplotlib 绘制训练和验证集的准确率和损失曲线
本教程将演示如何使用 Python Matplotlib 库绘制训练集和验证集的准确率和损失曲线。同时,我们将学习如何使用 plt.annotate() 函数在图上添加注释。
1. 准备数据
首先,我们需要准备训练集和验证集的准确率和损失数据。假设我们已经训练了一个模型,并获得了以下数据:
acc = history.history['accuracy']
val_acc = history.history['val_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(1, len(acc) + 1)
2. 绘制曲线
接下来,我们可以使用 Matplotlib 绘制训练和验证集的准确率和损失曲线:
import matplotlib.pyplot as plt
# 设置字体,防止中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(12, 4))
# 绘制训练集与验证集准确率曲线
plt.subplot(1, 2, 1)
plt.plot(epochs, acc, 'bo', label='训练集准确率')
plt.plot(epochs, val_acc, 'b', label='验证集准确率')
plt.title('训练集与验证集准确率曲线')
plt.xlabel('Epochs')
plt.ylabel('准确率')
plt.legend()
# 绘制训练集与验证集损失曲线
plt.subplot(1, 2, 2)
plt.plot(epochs, loss, 'bo', label='训练集损失')
plt.plot(epochs, val_loss, 'b', label='验证集损失')
plt.title('训练集与验证集损失曲线')
plt.xlabel('Epochs')
plt.ylabel('损失')
plt.legend()
plt.tight_layout()
plt.show()
3. 添加注释
我们可以使用 plt.annotate() 函数在图上添加注释。该函数接受四个参数:
- 注释文本:要显示的文本内容。
- 注释位置:注释指向的点坐标。
- 文本位置:注释文本的显示位置。
- 箭头属性:控制箭头样式的字典。
例如,我们可以在训练集准确率曲线中添加一个注释,指向最高准确率点:
# 添加注释
plt.annotate('最高准确率', xy=(10, 0.98), xytext=(15, 0.96),
arrowprops=dict(facecolor='black', shrink=0.05),
)
这个代码将在第 10 个 epoch 处添加一个注释,注释文本为 '最高准确率',注释指向的点坐标为 (10, 0.98),文本显示位置为 (15, 0.96)。arrowprops 参数设置了箭头属性,facecolor 控制箭头颜色,shrink 控制箭头大小。
总结
本文介绍了如何使用 Matplotlib 绘制训练和验证集的准确率和损失曲线,并使用 plt.annotate() 函数添加注释。你可以根据需要修改注释的位置、文本内容和箭头属性。
原文地址: https://www.cveoy.top/t/topic/pd7S 著作权归作者所有。请勿转载和采集!