一、配置环境
在控制台中使用pip install语句安装Tensorboard(同时需要安装tensorflow)
pip install tensorflow
pip install tensorboard
添加引用并为其设置路径
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter(log_dir = '日志路径')
二、关于SummaryWiter
SummaryWriter是Tensorboard的核心,在声明后Tensorboard即会展开服务,随后便可以在浏览器中可视化访问数据;在使用完毕后也需要使用close语句来关闭服务。类似于flask的app.run
writer.close()
三、添加数据
一般来说,常用的函数有:add_scalar(添加标量),add_scalars,add_image(添加图片),其用法如下:
1.add_scalar
用于添加标量,如损失函数,可以用来绘制图线。
for i in range(100):
writer.add_scalar(tag="accuracy", # 标签,即数据属于哪一类,不同的标签对应不同的图
scalar_value=i * random.uniform(0.8, 1), # 纵坐标的值
global_step=i # 迭代次数,即图的横坐标
)
#延迟代码,与数据无关
time.sleep(2 * random.uniform(0.5, 1.5))
Tips.Tag可以使用 / 进行分割(如:record/avg_loss;record/total_loss),会将多个图像放在同一Tag下
2.add_scalars
在同一张图中添加多条图线
for epoch in range(100):
writer.add_scalars('scalar/scalars_test', {'xsinx': epoch * np.sin(epoch), 'xcosx': epoch * np.cos(epoch)}, epoch)
3.add_graph
将模型导入,实现模型可视化
model = Net1() #实例化模型
with SummaryWriter(comment='Net1') as w:
w.add_graph(model, (dummy_input,))
第二个参数为输入向量,也可采用如下方法进行初始化
init_img = torch.zeros((1, 3, 224, 224), device=device)
4.add_image
添加图片文件,需要指定通道格式(dataformats)
单张写入
writer.add_image(tag = "test", img_array,1, dataformats='HWC')
多张写入
需要将图片先打包成一个batch,然后统一传入
for i in range(16):
img_batch[i, 0] = np.arange(0, 10000).reshape(100, 100) / 10000 / 16 * i
img_batch[i, 1] = (1 - np.arange(0, 10000).reshape(100, 100) / 10000) / 16 * i
writer.add_images('my_image_batch', img_batch, 0)