文件最后提交记录最后更新时间
init 4 年前
!4671 【fix】批量修改模型python版本,兼容环境上的python3.8版本 * fix python version 3 年前
init 4 年前
!4685 [fix] 修改算子调用方式 * fix code clean all_py about Operator modification * fix code clean * fix op way first 2 年前
!4671 【fix】批量修改模型python版本,兼容环境上的python3.8版本 * fix python version 3 年前
!5770 Network address of models to be rectified: 18 Merge pull request !5770 from Yss/network_declaration_18 2 年前
init 4 年前
!7376 optimize public_address_statement.md Merge pull request !7376 from 王凯宇/master 8 个月前
[众智][PyTorch]整改模型中的requirements.txt文件,删除torch,apex Signed-off-by: bailang <bailang12@h-partners.com> 3 年前
init 4 年前
init 4 年前
README.md

TSN(mmaction2)

This implements training of TSN on the UCF101 dataset, mainly modified from open-mmlab/mmaction2.

TSN Detail

As of the current date, Ascend-Pytorch is still inefficient for contiguous operations. Therefore, TSN is re-implemented using semantics such as custom OP.

Requirements

  • Install PyTorch (pytorch.org)
  • pip install -r requirements.txt
  • Download the UCF101 dataset according to dataset/README.md

Build MMCV

Download mmcv form source

git clone -b v1.3.9 https://github.com/open-mmlab/mmcv.git
mv mmcv/ mmcv-master/
mv mmcv-master/mmcv ./
rm -rf mmcv-master/

Change file of mmcv

/bin/cp -f mmcv_need/base_runner.py mmcv/runner/base_runner.py
/bin/cp -f mmcv_need/builder.py mmcv/runner/optimizer/builder.py
/bin/cp -f mmcv_need/checkpoint.py mmcv/runner/hooks/checkpoint.py
/bin/cp -f mmcv_need/data_parallel.py mmcv/parallel/data_parallel.py
/bin/cp -f mmcv_need/dist_utils.py mmcv/runner/dist_utils.py
/bin/cp -f mmcv_need/distributed.py mmcv/parallel/distributed.py
/bin/cp -f mmcv_need/epoch_based_runner.py mmcv/runner/epoch_based_runner.py
/bin/cp -f mmcv_need/iter_timer.py mmcv/runner/hooks/iter_timer.py
/bin/cp -f mmcv_need/optimizer.py mmcv/runner/hooks/optimizer.py
/bin/cp -f mmcv_need/test.py mmcv/engine/test.py
/bin/cp -f mmcv_need/transformer.py mmcv/cnn/bricks/transformer.py

Training

To train a model, run train.py with the desired model architecture.

# 1p train perf
bash test/train_performance_1p.sh --data_path=/opt/npu

# 8p train perf
bash test/train_performance_8p.sh --data_path=/opt/npu

# 8p train full
bash test/train_full_8p.sh --data_path=/opt/npu

# 8p eval 
bash test/train_eval_8p.sh --data_path=/opt/npu

# finetuning
bash test/train_finetune_1p.sh --data_path=/opt/npu

# online inference demo
source test/env_npu.sh
python3 demo.py

Note:

  • If you save dataset in another path but not /opt/npu, please specify argument --data_path. For example, if your dataset path is /home/dataset/ucf101, then --data_path=/home/dataset.
  • You can modify train_finetune_1p.sh to use another pretrain model.
  • You can use argument --test_num to choose which video to be tested when using demo.py.

Log Path:

  • tsn_performance_1p.log # 1p Training performance result log
  • tsn_performance_8p.log # 8p Training performance result log
  • tsn_full_1p.log # 1p Training performance and accuracy result log
  • tsn_full_8p.log # 8p Training performance and accuracy result log
  • tsn_eval_8p.log # 8p validating accuracy result log
  • tsn_finetune_1p.log # 1p fine-tuning result log

TSM training result

Top1 acc FPS Epochs AMP_Type Device
- 111.82 1 O2 1p Npu
83.27 638.85 75 O2 8p Npu
- 59.88 1 O2 1p Gpu
82.29 958.66 75 O2 8p Gpu

Statement

For details about the public address of the code in this repository, you can get from the file public_address_statement.md