0. 省流
0.1 安装 Tensorboard:
pip install tensorboard
0.2 实例化 Tensorboard
import torch
import numpy as np
from torch.utils.tensorboard import SummaryWriter
import os
import time
import datetime
seed = 42
torch.manual_seed(seed)
if torch.cuda.is_available():
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
np.random.seed(seed)
def get_current_time():
current_time = datetime.datetime.now()
formatted_time_a = current_time.strftime("%Y-%m-%d %H:%M:%S")
return formatted_time_a
save_folder_path = f"runs/{get_current_time()}"
if not os.path.exists(save_folder_path):
os.makedirs(save_folder_path)
tb_writer = SummaryWriter(log_dir=save_folder_path, flush_secs=5)
tb_writer.add_scalar("train/learning rate", lr, epoch)
tb_writer.add_scalar("train/train_loss", mean_loss, epoch)
tb_writer.add_scalar("val/mean IoU", mean_IoU, epoch)
tb_writer.add_scalar("val/global correct", global_correct, epoch)
1. 效果图
1.1 一个Tag多种数据
1.2 一个Tag一种数据
2. 演示代码
from torch.utils.tensorboard import SummaryWriter
import random
tb_writer = SummaryWriter(log_dir="./runs",
comment="example_1",
flush_secs=3)
epochs = 150
strat_epoch = 1
for epoch in range(strat_epoch, epochs):
lr = random.random()
coco_mAP = random.random()
voc_mAP = random.random()
coco_mAR = random.random()
giou_loss = random.random()
obj_loss = random.random()
cls_loss = random.random()
loss = random.random()
losses = [giou_loss, obj_loss, cls_loss, loss]
"""
'train/giou_loss', 'train/obj_loss', 'train/cls_loss', 'train/loss'表示一个tag下多种数据(tag名称为train)
剩下都均为单独的tag,tag名称为其自身
"""
if tb_writer:
tags = ['train/giou_loss', 'train/obj_loss', 'train/cls_loss', 'train/loss',
"learning_rate",
"mAP@[IoU=0.50:0.95]",
"mAP@[IoU=0.5]",
"mAR@[IoU=0.50:0.95]"]
for x, tag in zip(losses + [lr, coco_mAP, voc_mAP, coco_mAR], tags):
tb_writer.add_scalar(tag, x, epoch)