MMAction 开源项目使用教程
1. 项目的目录结构及介绍
MMAction 是一个基于 PyTorch 的开源工具箱,用于动作理解。项目的目录结构如下:
mmaction/
├── configs/
├── mmaction/
│ ├── apis/
│ ├── datasets/
│ ├── engine/
│ ├── evaluation/
│ ├── models/
│ ├── structures/
│ ├── testing/
│ ├── visualization/
│ ├── utils/
│ └── __init__.py
├── tools/
├── README.md
├── requirements.txt
└── setup.py
目录结构介绍
configs/
: 包含项目的配置文件。mmaction/
: 项目的主要代码库。apis/
: 提供高级 API 接口。datasets/
: 数据集处理相关代码。engine/
: 训练和测试引擎。evaluation/
: 评估指标和方法。models/
: 模型定义和实现。structures/
: 数据结构定义。testing/
: 测试相关代码。visualization/
: 可视化工具。utils/
: 各种实用工具。
tools/
: 包含一些实用脚本,如训练、测试等。README.md
: 项目介绍和使用说明。requirements.txt
: 项目依赖列表。setup.py
: 项目安装脚本。
2. 项目的启动文件介绍
MMAction 的启动文件主要位于 tools/
目录下,常用的启动文件包括:
tools/train.py
: 用于启动训练过程。tools/test.py
: 用于启动测试过程。
启动文件介绍
train.py
: 该文件用于训练模型,可以通过命令行参数指定配置文件和其他训练参数。test.py
: 该文件用于测试模型,可以通过命令行参数指定配置文件和测试数据集。
3. 项目的配置文件介绍
MMAction 的配置文件位于 configs/
目录下,配置文件通常以 .py
结尾,包含模型、数据集、训练和测试的详细配置。
配置文件示例
# 配置文件示例
_base_ = [
'../_base_/models/tsn_r50.py',
'../_base_/datasets/ucf101_train.py',
'../_base_/schedules/sgd_100e.py',
'../_base_/default_runtime.py'
]
model = dict(
type='TSN',
backbone=dict(
type='ResNet',
depth=50,
num_stages=4,
out_indices=(3,),
frozen_stages=1,
norm_cfg=dict(type='BN', requires_grad=True),
norm_eval=True,
style='pytorch'),
cls_head=dict(
type='TSNHead',
num_classes=101,
in_channels=2048,
spatial_type='avg',
consensus=dict(type='AvgConsensus', dim=1),
dropout_ratio=0.4,
init_std=0.01))
dataset_type = 'UCF101'
data_root = 'data/ucf101/videos'
data_root_val = 'data/ucf101/videos'
ann_file_train = 'data/ucf101/ucf101_train_split_1_videos.txt'
ann_file_val = 'data/ucf101/ucf101_val_split_1_videos.txt'
ann_file_test = 'data/ucf101/ucf101_val_split_1_videos.txt'
img_norm_cfg = dict(
mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False)
train_pipeline = [