模型训练结果可视化

📚博客主页: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 函数显示绘制好的图形窗口。
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UNet模型通常用于图像分割任务,这里介绍一下如何对UNet模型训练结果进行可视化。 首先,我们可以使用Keras内置的History类记录模型训练过程,包括每个epoch的训练损失、验证损失和准确率等。我们可以通过以下代码来获取这些信息: ```python history = model.fit(x_train, y_train, validation_data=(x_val, y_val), epochs=50, batch_size=16) train_loss = history.history['loss'] val_loss = history.history['val_loss'] train_acc = history.history['accuracy'] val_acc = history.history['val_accuracy'] ``` 其中,`train_loss`为训练集损失,`val_loss`为验证集损失,`train_acc`为训练集准确率,`val_acc`为验证集准确率。我们可以使用Matplotlib库将这些信息可视化成图表。 首先是损失曲线的绘制: ```python import matplotlib.pyplot as plt epochs = range(len(train_loss)) plt.plot(epochs, train_loss, 'b', label='Training loss') plt.plot(epochs, val_loss, 'r', label='Validation loss') plt.title('Training and validation loss') plt.legend() plt.show() ``` 这段代码将训练集和验证集的损失曲线绘制在同一张图中,可以直观地观察模型训练效果。 接下来是准确率曲线的绘制: ```python plt.plot(epochs, train_acc, 'b', label='Training accuracy') plt.plot(epochs, val_acc, 'r', label='Validation accuracy') plt.title('Training and validation accuracy') plt.legend() plt.show() ``` 这段代码将训练集和验证集的准确率曲线绘制在同一张图中,同样可以直观地观察模型训练效果。 需要注意的是,这些可视化结果只能作为参考,具体的模型表现还需要结合实际应用场景进行评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

knighthood2001

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

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

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

打赏作者

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

抵扣说明:

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

余额充值