# 一、Tensorboard 的使用逻辑
Tensorboard
的工作流程简单来说是:
1、将代码运行过程中所关心的数据保存在一个文件夹中(由代码中的 writer
完成)
2、再读取这个文件夹中的数据,用浏览器显示出来(在命令行中运行 tensorboard
完成)
# 二、代码中要做的事
# 1、首先导入 tensorboard,这里的 SummaryWriter 的作用就是将数据以特定的格式存储到第一步提到的文件夹中。 | |
from torch.utils.tensorboard import SummaryWriter | |
# 2、实例化,传入的参数就是指向文件夹的路径,之后我们使用这个 writer 对象 “拿出来” 的任何数据都保存在这个路径之下。 | |
writer = SummaryWriter('logs') | |
# 3、接下来要向这个文件夹里写入数据,可以写入多种数据 | |
# 3.1、比如写入数值可以调用 writer.add_scalar (tag, scalar_value, global_step=None, walltime=None) | |
# ----- 其中 tag 指定可视化时这个变量的名字,scalar_value 是你要存的值,global_step 可以理解为 x 轴坐标。 | |
# ----- 如下的例子会根据 [i,2i](i=0,...99) 生成一个 y=2x 的折线图 | |
for i in range(100): | |
writer.add_scalar('y=2x', 2*i, i) | |
# 3.2、除了数值,还可以写入模型训练过程中的图像。 | |
# -----writer.add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW') | |
# -----writer.add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW') | |
image_path = "hymenoptera_data/train/ants/5650366_e22b7e1065.jpg" #图片路径 | |
img = cv2.imread(image_path) | |
writer.add_image('test', img, 1, dataformats='HWC') |
# 三、可视化
通过上一节的步骤已经将关心的数据拿出来了,接下来我们只需要在命令行运行:
tensorboard --logdir=logs # (命令行运行)logs 是第二步的路径 | |
# tensorboard --logdir=logs --port=6007 # 默认端口号是 6006,可以手动更改为 6007 或者其他 |