0、查看模型信息
# model:模型
# input_size:模型输入size
# batch_size
# device:'cuda'或'cpu'
torchsummary(model,input_size,batch_size=-1,device='cuda')
from tensorboardX import SummaryWriter
1、实例化SummaryWriter,并指明日志存放路径(若当前目录没有此文件将自动创建)
# log_dir:event_file输出文件'logs'
# comment:不指定log_dir时,文件夹后缀
# filename_suffix:event_file文件名后缀
writer = SummaryWriter(log_dir=None,comment='',filename_suffix='')
2、关闭writer
writer.close()
3、记录标量
writer = SummaryWriter(log_dir='log_dir')
3.1 add_scalar
@只能记录一条曲线
# tag:图的名称/图像的标签名(图的唯一标识)
# scalar_value:要记录的标量
# global_step:x轴
writer.add_scalar(tag,scalar_value,global_step=None)
3.2 add_scalars
@可记录多条曲线
# main_tag:该图的标签(等同于add_scalar的tag)
# tag_scalar_dict:key是变量的tag,value是变量的值
write.add_scalars(main_tag,tag_scalar_dict,global_step=None)
4、启动tensorboard服务
tensorboard --logdir=logs --port localhost
5、标量举例
import torch
from tensorboardX import SummaryWriter
writer = SummaryWriter()
for n_iter in range(10):
scalar = torch.rand(1) # tensor([0.0825])
writer.add_scalar('data/scalar',scalar[0],n_iter)
writer.add_scalar('data/scalar_group',{'sinx':torch.sin(x)[0],
'cosx':torch.cos(x)[0],
'atanx':torch.atan(x)[0]},n_iter)
writer.close()
6、统计直方图
# values:要统计的参数
## global_step:y轴
# bins:取直方图的bins(通常'tensorflow')
write.add_histogram(tag,values,global_step=None,bins='tensorflow')
7、直方图举例
writer = SummaryWriter()
for x in range(2):
np.random.seed(x)
data_union = np.arange(100)
data_normal = np.random.normal(size=1000)
write.add_histogram('union',data_union,x)
write.add_histogram('normal',data_normal,x)
writer.close()
8、记录图像
# img_tensor:图像数据(注意尺度应为0-1)
# global_step:x轴
# dataformats:数据形式(CHW/HWC/HW)[C:通道;HW:高宽;HW:灰度图]
write.add_image(tag,img_tensor,global_step=None,dataformats='CHW')
9、可视化模型计算图
# model:模型,必须是nn.Module
# input_to_model:模型待接受的数据
# verbose:默认False即可,是否打印计算图结构信息
write.add_graph(model,input_to_model=None,verbose=False)