【mmsegmentation】工程--使用小技巧

1. 修改训练方式为按epoch计算

在mmseg的工程使用中,一般情况默认训练的次数是按照inter去计算的,比如swin中160000个inter,每4000次inter进行一次模型验证,并保存一次模型,这样的计算方式有时不能直接满足按epoch计算的训练方式。本人还是习惯用epoch来验证和保存模型,那么只需要修改config中的一处既可以。接下来就代码展示:

  • inter的训练方式
runner = dict(type='IterBasedRunner', max_iters=160000)
#共有160000次inter
checkpoint_config = dict(by_epoch=False, interval=4000)
#每4000个inter保存一次模型
evaluation = dict(interval=4000, metric='mIoU', pre_eval=True)
#每4000个inter计算一次验证
  • epoch的训练方式
runner = dict(type='EpochBasedRunner', max_epochs=100)
#共100个epoch
checkpoint_config = dict(by_epoch=True, interval=1)
#每一次epoch都保存一次模型
evaluation = dict(interval=1, metric='mIoU', pre_eval=True)
#每一次epoch都计算一次验证

2.保存bestmodel

无论是每一次epoch都保存模型还是按照inter,每4000次inter都保存一次模型的方式,要想找到最优模型,还得自己去对着log文件找,太麻烦了。这个问题也可以简单解决,找到mmseg/apis/train.py,找到runner.register_hook这里,修改原有的钩子定义即可。

runner.register_hook(eval_hook(val_dataloader, **eval_cfg), priority='LOW')
#原来的,没有保存bestmodel
runner.register_hook(eval_hook(val_dataloader,save_best='mIoU', **eval_cfg), priority='LOW')
#修改后,自动保存bestmodel

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zy_destiny

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

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

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

打赏作者

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

抵扣说明:

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

余额充值