模型训练结果可视化

📚博客主页:knighthood2001
公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下)
🎃知识星球:【认知up吧|成长|副业】介绍
❤️如遇文章付费,可先看看我公众号中是否发布免费文章❤️
🙏笔者水平有限,欢迎各位大佬指点,相互学习进步!

上文,我们返回的这样的一个数据。

    train_process = pd.DataFrame(data={
                                    "epoch": range(num_epochs),
                                    "train_loss_all": train_loss_all,
                                    "val_loss_all": val_loss_all,
                                    "train_acc_all": train_acc_all,
                                    "val_acc_all": val_acc_all, }
    )

接着,我们需要对其进行可视化。

结果展示

在这里插入图片描述
我跑了10轮,花了12分钟。
在这里插入图片描述
在这里插入图片描述

代码部分

def matplot_acc_loss(train_process):
    # 显示每一次迭代后的训练集和验证集的损失函数和准确率
    plt.figure(figsize=(12, 4))
    plt.subplot(1, 2, 1)
    plt.plot(train_process['epoch'], train_process.train_loss_all, "ro-", label="Train loss")
    plt.plot(train_process['epoch'], train_process.val_loss_all, "bs-", label="Val loss")
    plt.legend()
    plt.xlabel("epoch")
    plt.ylabel("Loss")
    plt.subplot(1, 2, 2)
    plt.plot(train_process['epoch'], train_process.train_acc_all, "ro-", label="Train acc")
    plt.plot(train_process['epoch'], train_process.val_acc_all, "bs-", label="Val acc")
    plt.xlabel("epoch")
    plt.ylabel("acc")
    plt.legend()
    plt.savefig("train_process.png")
    plt.show()

这段代码定义了一个函数 matplot_acc_loss(train_process),用于绘制训练过程中每个 epoch 后的训练集和验证集的损失函数和准确率曲线,并保存为名为 train_process.png 的图片文件。

让我们逐步解释这个函数的实现:

  1. 函数定义
   def matplot_acc_loss(train_process):
  • 这是一个 Python 函数的定义,函数名为 matplot_acc_loss,它接收一个参数 train_process,这个参数通常是一个包含训练过程中各种指标的数据结构,例如 DataFrame 或字典。
  1. 绘制图像
   plt.figure(figsize=(12, 4))
  • 创建一个新的图形窗口,指定图形的大小为宽度 12 英寸,高度 4 英寸。
  1. 绘制第一个子图(左侧) - 损失函数
   plt.subplot(1, 2, 1)
   plt.plot(train_process['epoch'], train_process.train_loss_all, "ro-", label="Train loss")
   plt.plot(train_process['epoch'], train_process.val_loss_all, "bs-", label="Val loss")
   plt.legend()
   plt.xlabel("epoch")
   plt.ylabel("Loss")
  • 使用 subplot 创建一个 1x2 的子图布局,当前选中第一个子图。
  • 使用 plot 函数分别绘制训练集和验证集每个 epoch 的损失函数,train_process['epoch'] 是 x 轴数据,train_process.train_loss_alltrain_process.val_loss_all 分别是训练集和验证集的损失函数数据。
  • "ro-""bs-" 是绘图的样式,“ro-” 表示红色圆点线,“bs-” 表示蓝色方块线。
  • legend() 添加图例,标明每条曲线对应的标签。
  • xlabelylabel 分别设置 x 轴和 y 轴的标签。
  1. 绘制第二个子图(右侧) - 准确率
   plt.subplot(1, 2, 2)
   plt.plot(train_process['epoch'], train_process.train_acc_all, "ro-", label="Train acc")
   plt.plot(train_process['epoch'], train_process.val_acc_all, "bs-", label="Val acc")
   plt.xlabel("epoch")
   plt.ylabel("acc")
   plt.legend()
  • 使用 subplot 选择第二个子图。
  • 使用 plot 函数分别绘制训练集和验证集每个 epoch 的准确率,train_process.train_acc_alltrain_process.val_acc_all 是对应的数据。
  • "ro-""bs-" 是绘图的样式,“ro-” 表示红色圆点线,“bs-” 表示蓝色方块线。
  • xlabelylabel 设置 x 轴和 y 轴的标签。
  • legend() 添加图例,标明每条曲线对应的标签。
  1. 保存和显示图像
   plt.savefig("train_process.png")
   plt.show()
  • savefig 函数将当前图形保存为名为 train_process.png 的图片文件。
  • show 函数显示绘制好的图形窗口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

knighthood2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值