分析工具¶
除了训练/测试脚本外,我们在 tools/
目录下还提供了许多有用的工具。
分析工具链接¶
模型转换¶
准备模型进行发布¶
tools/deployment/publish_model.py
帮助用户准备他们的模型进行发布。
在将模型上传到 AWS 之前,您可能想要:
(1)将模型权重转换为 CPU 张量。 (2)删除优化器状态信息。 (3)计算权重文件的哈希值,并将哈希值添加到文件名中。
python tools/deployment/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME}
例如,
python tools/deployment/publish_model.py work_dirs/tsn_r50_8xb32-1x1x3-100e_kinetics400-rgb/latest.pth tsn_r50_1x1x3_100e_kinetics400_rgb.pth
最终输出的文件名将是 tsn_r50_8xb32-1x1x3-100e_kinetics400-rgb-{hash id}.pth
。
杂项¶
评估指标¶
tools/analysis_tools/eval_metric.py
根据配置文件评估保存在文件中的结果的某些指标。
保存的结果文件是通过在 tools/test.py
中设置参数 --out ${RESULT_FILE}
来创建的,以指示结果文件,其中存储了整个模型的最终输出。
python tools/analysis/eval_metric.py ${CONFIG_FILE} ${RESULT_FILE} [--eval ${EVAL_METRICS}] [--cfg-options ${CFG_OPTIONS}] [--eval-options ${EVAL_OPTIONS}]
打印完整配置¶
tools/analysis_tools/print_config.py
逐字打印整个配置,展开所有导入项。
python tools/analysis_tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}]
检查视频¶
tools/analysis_tools/check_videos.py
使用指定的视频编码器迭代由输入配置文件指定的所有样本,查找无效的视频(损坏或缺失),并将相应的文件路径保存到输出文件中。请注意,删除无效视频后,用户需要重新生成视频文件列表。
python tools/analysis_tools/check_videos.py ${CONFIG} [-h] [--options OPTIONS [OPTIONS ...]] [--cfg-options CFG_OPTIONS [CFG_OPTIONS ...]] [--output-file OUTPUT_FILE] [--split SPLIT] [--decoder DECODER] [--num-processes NUM_PROCESSES] [--remove-corrupted-videos]
多流融合¶
tools/analysis_tools/report_accuracy.py
使用推理保存的结果(在测试时设置 --dump res.pkl
)来融合多流预测分数,即后融合(late fusion)。
python tools/analysis_tools/report_accuracy.py [--preds ${RESULT_PKL_1 [RESULT_PKL_2 ...]}] [--coefficients ${COEFFICIENT_1 [COEFFICIENT_2, ...]}] [--apply-softmax]
以 joint-bone 融合为例,这是基于骨骼动作识别任务的一种常见实践。
python tools/analysis_tools/report_accuracy.py --preds demo/fuse/joint.pkl demo/fuse/bone.pkl --coefficients 1.0 1.0
Mean Class Accuracy: 0.9180
Top 1 Accuracy: 0.9333
Top 5 Accuracy: 0.9833