mmpretrain/tests/test_utils/test_analyze.py

44 lines
1.7 KiB
Python

# Copyright (c) OpenMMLab. All rights reserved.
import os.path as osp
import tempfile
from mmcls.utils import load_json_log
def test_load_json_log():
demo_log = """\
{"lr": 0.0001, "data_time": 0.003, "loss": 2.29, "time": 0.010, "epoch": 1, "step": 150}
{"lr": 0.0001, "data_time": 0.002, "loss": 2.28, "time": 0.007, "epoch": 1, "step": 300}
{"lr": 0.0001, "data_time": 0.001, "loss": 2.27, "time": 0.008, "epoch": 1, "step": 450}
{"accuracy/top1": 23.98, "accuracy/top5": 66.05, "step": 1}
{"lr": 0.0001, "data_time": 0.001, "loss": 2.25, "time": 0.014, "epoch": 2, "step": 619}
{"lr": 0.0001, "data_time": 0.000, "loss": 2.24, "time": 0.012, "epoch": 2, "step": 769}
{"lr": 0.0001, "data_time": 0.003, "loss": 2.23, "time": 0.009, "epoch": 2, "step": 919}
{"accuracy/top1": 41.82, "accuracy/top5": 81.26, "step": 2}
{"lr": 0.0001, "data_time": 0.002, "loss": 2.21, "time": 0.007, "epoch": 3, "step": 1088}
{"lr": 0.0001, "data_time": 0.005, "loss": 2.18, "time": 0.009, "epoch": 3, "step": 1238}
{"lr": 0.0001, "data_time": 0.002, "loss": 2.16, "time": 0.008, "epoch": 3, "step": 1388}
{"accuracy/top1": 54.07, "accuracy/top5": 89.80, "step": 3}
""" # noqa: E501
with tempfile.TemporaryDirectory() as tmpdir:
json_log = osp.join(tmpdir, 'scalars.json')
with open(json_log, 'w') as f:
f.write(demo_log)
log_dict = load_json_log(json_log)
assert log_dict.keys() == {'train', 'val'}
assert log_dict['train'][3] == {
'lr': 0.0001,
'data_time': 0.001,
'loss': 2.25,
'time': 0.014,
'epoch': 2,
'step': 619
}
assert log_dict['val'][2] == {
'accuracy/top1': 54.07,
'accuracy/top5': 89.80,
'step': 3
}