[PyTorch]在PyTorch环境下使用Tensorboard

一、配置环境

        在控制台中使用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)

猜你喜欢

转载自blog.csdn.net/weixin_37878740/article/details/128776311