PyTorch如何保存验证集上效果最好的模型

PyTorch如何保存验证集上效果最好的模型

验证集的作用是在训练过程中监测是否出现过拟合。通常情况下,我们期望验证集的损失函数值在训练过程中首先下降,然后趋于稳定或上升。当损失函数值达到最小值时,表示模型在验证集上的泛化能力最佳,效果最好。

当我们的模型在训练后,在验证集上进行验证时,通常我们想要保留效果最好的模型,想要找到在哪个epoch下模型的效果最好,而不是将每个epoch下的模型都保存。

因此,通过设定一个最小损失的阈值,在每次epoch结束后,都与该阈值进行比较,当小于此阈值时,修改阈值并保存当前epoch下对应的模型。这样最后保存的模型便为在验证集上效果最好的模型,该方式不仅降低了内存的使用,而且提升了我们训优的效率。

"""
	伪代码实现:
"""
# 定义一个最小损失阈值,尽量大一点,全局变量
loss_min = 1e9

# 如果当前批次的损失低于最小损失,则保存模型
global loss_min
if cur_loss < loss_min:
    loss_min = cur_loss
    save_model(save_path, ....)
"""
	实例:
"""
# 定义最小损失,用于保存最好的模型,全局变量
min_loss = 1e9

# 保存效果最好的模型以及最后一个epoch对应的模型,global用于声明min_loss是全局变量
global min_loss
if loss < min_loss or epoch == opt.n_epochs:
    min_loss = loss
    save_model(save_path, epoch, model, optimizer)

注意:通过这种方式我们可以得到在验证集上损失最小的epoch所对应的模型,但是通过实验我发现,该模型不一定就是效果最好的模型。很梦幻,深度学习~

😃😃😃

相关推荐

  1. PyTorch如何保存验证效果模型

    2024-04-23 07:18:05       13 阅读
  2. pytorch利用保存模型进行预测

    2024-04-23 07:18:05       19 阅读
  3. 深度学习-Pytorch如何保存和加载模型

    2024-04-23 07:18:05       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 07:18:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 07:18:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 07:18:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 07:18:05       20 阅读

热门阅读

  1. react经验12:等待状态更新

    2024-04-23 07:18:05       14 阅读
  2. PostgreSQL 排查链接锁问题常用SQL语句

    2024-04-23 07:18:05       11 阅读
  3. pytorch的mask-rcnn的模型参数解释

    2024-04-23 07:18:05       14 阅读
  4. 构造函数及es6类写单例模式

    2024-04-23 07:18:05       16 阅读
  5. paddlepaddle/paddle 命令注入漏洞复现_$1500 CVE-2024-0934

    2024-04-23 07:18:05       16 阅读
  6. 新技术应用塑造未来景展望

    2024-04-23 07:18:05       13 阅读
  7. PaddleSeg数据集的准备

    2024-04-23 07:18:05       14 阅读
  8. python与PySpark

    2024-04-23 07:18:05       14 阅读
  9. C++笔记打卡第15天(函数模版)

    2024-04-23 07:18:05       14 阅读
  10. Python网络爬虫项目开发实战:怎么解决数据抓取

    2024-04-23 07:18:05       14 阅读
  11. 蓝桥杯 BASIC-22 基础练习 FJ的字符串

    2024-04-23 07:18:05       13 阅读