Python Matplotlib 绘制训练集和验证集的准确率和损失曲线
这段代码使用了 Matplotlib 库来绘制训练集和验证集的准确率曲线和损失曲线。
首先,通过设置 plt.rcParams['font.sans-serif'] = ['SimHei'] 和 plt.rcParams['axes.unicode_minus'] = False 来解决中文显示问题。
然后,从 history 对象中获取训练集和验证集的准确率和损失,并存储在相应的变量中。
接下来,创建一个大小为 12x4 的画布,并分为 1 行 2 列。
在第一个子图中,使用 plt.subplot(1, 2, 1) 指定绘制在第 1 行第 1 列的位置。然后,使用 plt.plot 函数绘制训练集和验证集的准确率曲线。epochs 变量表示横轴的取值范围,即训练的轮数。'bo' 表示蓝色圆点,表示训练集准确率;'b' 表示蓝色实线,表示验证集准确率。最后,添加图标题、横轴和纵轴标签,并使用 plt.legend() 添加图例。
在第二个子图中,使用 plt.subplot(1, 2, 2) 指定绘制在第 1 行第 2 列的位置。然后,使用 plt.plot 函数绘制训练集和验证集的损失曲线,与第一个子图类似。最后,添加图标题、横轴和纵轴标签,并使用 plt.legend() 添加图例。
最后,使用 plt.tight_layout() 调整子图的布局,并使用 plt.show() 显示图形。
这段代码可以帮助我们观察模型的训练过程,了解准确率和损失的变化情况。
import matplotlib.pyplot as plt
# 设置 Matplotlib 中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 获取训练数据
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)
# 创建画布
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()
原文地址: https://www.cveoy.top/t/topic/pd7V 著作权归作者所有。请勿转载和采集!