深度学习模型训练&验证&测试流程

对于模型的训练、验证和测试流程,可操作空间较大。按照不同的测试方式,存在几种不同的版本,将其记录。

模式一:训练&验证结束 + 测试

将模型的训练与测试分离开来,训练&验证阶段保存模型参数,测试阶段加载模型参数完成测试。伪代码如下:

参考代码:livebot/codes/transformer.py at master · lancopku/livebot (github.com)

for i in epoch
    train()
    if batch_num satisfies XX:
         result = validate()
         if result satidfies threshold:
             save checkpoint()

# 加载模型参数进行测试测试
test()

这种模式应用比较广泛,实际编写程序时推荐此种方法完成模型的测试。


模式二:训练期间验证结果驱动的测试

将测试过程蕴含于训练阶段中,这种方式耦合性比较高,不过省去了测试阶段模型加载的步骤。伪代码如下:

参考代码:不详(忘记出处了……)

for i in epoch:
    train()
    result = validate()

    if result satidfies threshold:
        save checkpoint()
        test()

注意⚠️:上述代码中的 result 可以是当前模型在验证集上的损失计算结果,也可以是当前模型在验证集上的评价指标计算结果。

两种模式的主要区别在于测试阶段是否内嵌于训练&验证阶段,考虑到复现成本,推荐第一种模式完成模型的训练与测试。

PS:训练集 loss 下降而测试集 loss 一直上升,说明模型过拟合,可通过增加 dropout 或降低模型规模来解决。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_Meilinger_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值