MMAction2框架使用手札


环境配置

基础镜像:pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel
依次:

apt-get update && apt-get install -y vim \
        libsm6 \
        libxrender1 \
        libxext-dev \
        libgl1-mesa-glx \
        libglib2.0-0 \
        git
pip install openmim
pip install git+https://github.com/open-mmlab/mim.git
mim install mmaction2

部分用法简单记录

看docs,看docs,看docs,就够了!

BTW,一些记录:

1. TSM中关于clip_num和clip_length的设置等价性:

TSM训练时设置 1x8x8和 8x8x1是等价的

2. 设置train log打印频率:

在config文件中添加:

log_config = dict(
    interval=20,
    hooks=[
        dict(type='TextLoggerHook'),
        dict(type='TensorboardLoggerHook'),
    ])

interval即为打印频率。这个默认设置在
configs/base/default_runtime.py


一些报错 & 原因 & 解决方法:

1. 找不到MMCV中某个模块:

UserWarning: Fail to import ``MultiScaleDeformableAttention`` from ``mmcv.ops.multi_scale_deform_attn``, You should install ``mmcv-full`` if you need this module.

很大可能是因为mmcv的版本不对,而mmcv高度依赖pytorch和cuda的版本,需要对应好:

pip install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu{Cuda_verison}/torch{Pytorch_Version}/index.html

其中,Cuda_version和Pytorch_version 需要根据自己的具体环境来定
例如:

pip install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu10.1/torch1.6.0/index.html

2. 自定义数据找不到:

KeyError: 'MyDataset is not in the dataset registry' 

在已经根据tutorials要求修改过代码后,还是报错,大概率是因为没有进行以下这一步:

python setup.py install

3. TimeSformer训练时无法load模型:

Only one file(not dir) is allowed in the zipfile

pytorch <= 1.6的版本和mmaction2中相关的zip文件loader不兼容,升级pytorch版本>=1.7.0即可
同时需要更新mmcv-full版本(一定要记得不要用缓存中的安装包,加上–no-cache-dir 参数):

pip install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu10.1/torch1.7.0/index.html --no-cache-dir 

4. 视频解码部分报错:

RuntimeError: NCCL error in: /pytorch/torch/lib/c10d/ProcessGroupNCCL.cpp:784, unhandled system error, NCCL version 2.7.8

pytorch版本降到1.6即可
比较奇怪的是,用TimeSformer模型inference时,需要pytorch>=1.7才能正常加载模型,此时使用pytorch1.7不会报错,但在用tsm模型inference时,pytorch==1.7就会报上述错误,而降到1.6时,就不会报错了。


未完待续……


版权声明:本文为dwqy11原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。