MMAction简单教程02 快速运行(tsn模型训练测试)

1.推理

        在MMAction的根目录下执行如下命令:

python demo/demo_inferencer.py  demo/demo.mp4 --rec tsn --print-result --label-file tools/data/kinetics/label_map_k400.txt

        执行命令后可以看到控制台中打印的推理结果(如下图): 

{'predictions': [{'rec_labels': [[0]], 'rec_scores': [[0.515182614326477, 0.48481735587120056]]}]}

 

2.准备数据集

        下载官方预先准备的数据集kinetics400_tiny.zip,并将其解压到MMAction2根目录下面。或者在命令行执行以下操作:

wget https://download.openmmlab.com/mmaction/kinetics400_tiny.zip
mkdir -p data/
unzip kinetics400_tiny.zip -d data/

3.修改配置文件(指定训练集和训练参数)

        使用resnet50作为主干网络来训练TSN。因为MMAction2已经拥有完整的Kinetics400数据集的配置文件(configs/recognition/tsn/tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py),只需要在其基础上进行部分修改。

(1)修改数据集路径

        在tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py文件中,替换以下关键字:

data_root = 'data/kinetics400_tiny/train'
data_root_val = 'data/kinetics400_tiny/val'
ann_file_train = 'data/kinetics400_tiny/kinetics_tiny_train_video.txt'
ann_file_val = 'data/kinetics400_tiny/kinetics_tiny_val_video.txt'

(2)修改运行配置

        在tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py中,修改以下参数:

# 设置训练批大小为 4
train_dataloader['batch_size'] = 4

# 每轮都保存权重,并且只保留最新的权重
default_hooks = dict(
    checkpoint=dict(type='CheckpointHook', interval=1, max_keep_ckpts=1))
# 将最大 epoch 数设置为 10,并每 1 个 epoch验证模型
train_cfg = dict(type='EpochBasedTrainLoop', max_epochs=10, val_interval=1)
#根据 10 个 epoch调整学习率调度
param_scheduler = [
    dict(
        type='MultiStepLR',
        begin=0,
        end=10,
        by_epoch=True,
        milestones=[4, 8],
        gamma=0.1)
]

(3)修改模型配置

         在tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py中,直接添加以下代码:

model = dict(
    cls_head=dict(num_classes=2))
load_from = 'https://download.openmmlab.com/mmaction/v1.0/recognition/tsn/tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb/tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb_20220906-cd10898e.pth'

4.处理数据集

        将训练时数据转换做帧可视化处理,将我们需要可视化的配置文件传递到browse_dataset.py脚本:

python tools/visualizations/browse_dataset.py configs/recognition/tsn/tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py browse_out --mode pipeline

经过转换处理后的视频被放到了browse_out文件中:

执行以下操作可视化学习调度(弹出如下图所示训练学习率时间表)以确保配置符合预期:

python tools/visualizations/vis_scheduler.py configs/recognition/tsn/tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py

 

5.训练

        运行如下命令启动训练: 

python tools/train.py configs/recognition/tsn/tsn_imagenet-pretrained-r50_8xb32-1x1x3-100e_kinetics400-rgb.py

        训练日志:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值