openmmflow——tutorial 2 对模型微调

在这里插入图片描述

微调模型

在飞椅和3d飞物数据集上的光流预训练模型可以很好的应用在其他数据集上
此篇将说明如何在在标准数据集上训练模型

确定训练计划

从默认计划中微调超参数,通常需要更小的学习率和更少的迭代次数

# optimizer使用adam优化器
optimizer = dict(type='Adam', lr=1e-5, weight_decay=0.0004, betas=(0.9, 0.999))
optimizer_config = dict(grad_clip=None)
# learning policy
lr_config = dict(
    policy='step',
    by_epoch=False,
    gamma=0.5,
    step=[
        45000, 65000, 85000, 95000, 97500, 100000, 110000, 120000, 130000,
        140000
    ])
runner = dict(type='IterBasedRunner', max_iters=150000)
checkpoint_config = dict(by_epoch=False, interval=10000)
evaluation = dict(interval=10000, metric='EPE')

使用预训练模型

使用load_from加载一个预训练模型

# use the pre-trained model for the whole PWC-Net
load_from = 'https://download.openmmlab.com/mmflow/pwcnet/pwcnet_8x1_sfine_flyingthings3d_subset_384x768.pth'  # model path can be found in model zoo

在单gpu上训练
在tools/train.py中启动gpu训练

python tools/train.py \
    ${CONFIG_FILE} \
    [optional arguments]

在训练区间,日志文件和检查点保存在工作目录,可以使用work_dir配置工作路径

训练参数

  • --resume-from ${checkpoint_file}:引入检查点文件
  • --cfg-option:重写一些设置

resume-from 和load_from的区别

  • resume-from加载模型权重、优化器参数、迭代器也是从检查点文件继承下来的,通常用于恢复意外中断的训练过程
  • load-from只加载模型权重文件,迭代从0开始,用于微调

标题在多个GPU上训练

sh tools/dist_train.sh \
    ${CONFIG_FILE} \
    ${GPU_NUM} \
    [optional arguments]

在单个gpu上启动多个任务

如果想在一台机器上启动多个任务,比如用8GPU机器中的4个GPU上训练两个任务,需要修改不同的端口以免GPU互相通信
如果使用dist_train.sh训练多任务可以使用

CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 sh tools/dist_train.sh ${CONFIG_FILE} 4
CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 sh tools/dist_train.sh ${CONFIG_FILE} 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值