
测试版本:mmaction0.20.0
测试环境:ubuntu18.04
当我们测试tsn模型:
python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth demo/demo.mp4 tools/data/kinetics/label_map_k400.txt
结果显示:
load checkpoint from local path: checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth The top-5 labels with corresponding scores are: arm wrestling: 29.61644 rock scissors paper: 10.754842 shaking hands: 9.908401 clapping: 9.189913 massaging feet: 8.305306 显然上面得分>1不符合0-1概率,因此如何改为0-1概率显示呢。
方法如下:
经过测试发现tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py加入test_cfg已经没有效果,正确做法就是:
去mmaction2-0.20.0/configs/_base_/models/tsn_r50.py将tesct_cfg改为
test_cfg = dict(average_clips='prob', test_crops=1))
最终文件内容结果:
# model settings model = dict( type='Recognizer2D', backbone=dict( type='ResNet', pretrained='torchvision://resnet50', depth=50, norm_eval=False), cls_head=dict( type='TSNHead', num_classes=400, in_channels=2048, spatial_type='avg', consensus=dict(type='AvgConsensus', dim=1), dropout_ratio=0.4, init_std=0.01), # model training and testing settings train_cfg=None, test_cfg = dict(average_clips='prob', test_crops=1))