tensorboard的作用:在复杂的问题中,网络往往都是很复杂的,为了方便调试参数以及调整网络结构,我们需要将计算图可视化出来,以便能够更好的进行下一步的决策。tensorboard是可视化tensorflow模型的训练过程的工具,在安装tensorflow的同时就已经安装好了tensorboard。tensorboard能够有效地展示tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。
tensorboard summarywriter()函数
writer.add_scalar()
add_scalar(tag, scalar_value, global_step=None, ):
将我们所需要的数据保存在文件里面供可视化使用
tag(字符串):保存图的名称
scalar_value(浮点型或字符串):y轴数据(步数)
global_step(int):x轴数据
测试代码:range函数是python中for循环经常使用的一个函数,不清楚的可以看range函数
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
x = range(100)
for i in x:
writer.add_scalar('y=2x', i * 2, i)
writer.close()
运行结果:
在pycharm的Terminal中输入 tensorboard --logdir=logs 然后点击蓝色的网址,就可以进入tensorboard的可视化网站,看到刚刚的代码运行后的结果。
writer.add_image()
add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats=‘CHW’):绘制图片,可用于检查模型的输入,监测 feature map 的变化,或是观察 weight。
tag:就是保存图的名称
img_tensor:图片的类型要是torch.Tensor, numpy.array, or string这三种
global_step:第几张图片
dataformats=‘CHW’,默认CHW,tensor是CHW,numpy是HWC
测试代码:
该测试代码时使用的numpy类型的图像,也可以使用opencv类型的
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
image_path = "data/train/ants_image/20935278_9190345f6b.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)
writer.add_image("train", img_array, 1, dataformats='HWC')
# y = 2x
for i in range(100):
writer.add_scalar("y=2x", 3*i, i)
writer.close()
测试结果:一定要点一下images!!!
opencv类型的,注意看numpy类型和opencv类型两个代码的区别
from torch.utils.tensorboard import SummaryWriter
import cv2
from torchvision import transforms
writer = SummaryWriter("logs")
image = cv2.imread('data/train/ants_image/24335309_c5ea483bb8.jpg')
print(image.shape)
# 需要把图片转为tensor类型
tran = transforms.ToTensor()
img_tensor = tran(image)
print(img_tensor.shape)
writer.add_image("test", img_tensor, 1)
writer.close()