File size: 3,267 Bytes
d3dbf03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# 分析工具

除了训练/测试脚本外,我们在 `tools/` 目录下还提供了许多有用的工具。

## 分析工具链接

<!-- TOC -->

- [](#分析工具)
  - [分析工具](#分析工具)
  - [模型转换](#模型转换)
    - [准备模型进行发布](#准备模型进行发布)
  - [杂项](#杂项)
    - [评估指标](#评估指标)
    - [打印完整配置](#打印完整配置)
    - [检查视频](#检查视频)
    - [多流融合](#多流融合)

<!-- TOC -->

## 模型转换

### 准备模型进行发布

`tools/deployment/publish_model.py` 帮助用户准备他们的模型进行发布。

在将模型上传到 AWS 之前,您可能想要:

(1)将模型权重转换为 CPU 张量。
(2)删除优化器状态信息。
(3)计算权重文件的哈希值,并将哈希值添加到文件名中。

```shell

python tools/deployment/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME}

```

例如,

```shell

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}` 来创建的,以指示结果文件,其中存储了整个模型的最终输出。

```shell

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` 逐字打印整个配置,展开所有导入项。

```shell

python tools/analysis_tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}]

```

### 检查视频

`tools/analysis_tools/check_videos.py` 使用指定的视频编码器迭代由输入配置文件指定的所有样本,查找无效的视频(损坏或缺失),并将相应的文件路径保存到输出文件中。请注意,删除无效视频后,用户需要重新生成视频文件列表。

```shell

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)。

```shell

python tools/analysis_tools/report_accuracy.py [--preds ${RESULT_PKL_1 [RESULT_PKL_2 ...]}] [--coefficients ${COEFFICIENT_1 [COEFFICIENT_2, ...]}] [--apply-softmax]

```

以 joint-bone 融合为例,这是基于骨骼动作识别任务的一种常见实践。

```shell

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

```