通常训练完一个模型之后,会得到log.txt日志,通过进行处理可以得到一些关心的实验数据关于epoch的变化曲线。
下面的代码可以用来可视化loss和mAP的变化,仅供参考:
- import matplotlib.pyplot as plt
-
- # 逐行读取每个epoch的输出日志,并把str转成字典
- with open('log.txt','r') as file:
- dict_list = []
- lines = file.readlines()
- for line in lines:
- line = eval(line)
- dict_list.append(line)
-
- list_train_error = []
- list_test_error = []
- list_mAP = []
- epochs = []
- for i in range(36):
- list_train_error.append(dict_list[i]["train_loss"])
- list_test_error.append(dict_list[i]["test_loss"])
- list_mAP.append(dict_list[i]["test_coco_eval_bbox"][0])
- epochs.append(i+1)
-
- # 可视化
- plt.figure()
- plt.plot(epochs, list_mAP)
- plt.xticks(epochs)
- # plt.yticks(range(min(list_train_error),max(list_train_error)+1))
- plt.title('list_mAP vs. Epoch', fontsize=16)
- plt.xlabel('Epochs', fontsize=12)
- plt.ylabel('list_mAP', fontsize=12)
- plt.show(block=False)