什么是TensorBoard
是一个可视化和理解深度爵溪模型的工具。它可以通过显示模型结构、训练过程中的指标和图形化展示训练的效果来帮助用户更好地理解和调试他们的模型
TensorBoard的使用
安装tensorboard
环境
在终端使用
conda install tensorboard
通过anaconda
安装
导入类SummaryWriter
from torch.utils.tensorboard import SummaryWriter
我们可以查看SummaryWriter
的源码
对他的介绍是
将条目直接写入log_dir
中的事件文件,以供TensorBoard
使用。
然后我们可以看到他的使用方法
我们就可以通过指定单个参数,来将生成的事件与文件存储到指定的文件夹下
writer = SummaryWriter("logs") # 单参数传递,说明将我们的事件和文件存储到logs的文件夹下
其中主要使用到了两种方法
- add_image()
- add_scalar()
add_scalar() 添加标量
我们查看源码
我们可以编写一个例子演示一下
for i in range(100):
writer.add_scalar("y=2x", 2*i, i) #生成图像
运行结束后会生成logs
的文件夹
然后再项目终端使用
# tensorboard --logdir=文件夹名
tensorboard --logdir=logs
打开生成的事件与文件
就可以在对应的端口上观察相应的可视化界面了
add_image() 添加图片
我们先看一下源码
注意我们的img_tensor
的类型,就不能用我们Image.open()
打开的类型了
因为打开的类型为
from PIL import Image
img = Image.open(img_path)
print(type(img))
<class 'PIL.JpegImagePlugin.JpegImageFile'> # 不符合上面文件的规范
这时候我们可以使用numpy
包中的array
方法,将Image.open
打开的图片类型转化为numpy
类型,具体操作为
img_path = "dataset/hymenoptera_data/train/ants/0013035.jpg"
img_PIL = Image.open(img_path)
img_np = np.array(img_PIL) # 将其他数据结构转化为numpy类型
然后我们就可以导入测试了,但是注意一个问题
通过这种方式转化为numpy
类型的数据与add_image方法默认的数据形式不相同,默认形式为CHW
,而numpy
类型时HWC
writer.add_image("test", img_np, 1, dataformats='HWC') # 添加图片
# 最后需要指定格式
程序成功运行,通过终端
输入指令
tensorboard --logdir=logs
成功运行