前言:
在人工智能领域中,机器学习随处可见,而机器学习通常涉及在训练期间可视化和度量模型的性能。其中TensorFlow的开源工具套件Tensorboard就是一个常见的可视化工具。虽然他是TensorFlow的一部分,但是是可以进行独立安装的,并且适用于Pytorch;
TensorBoard在Pytorch中的作用:
在Pytorch中,我们经常训练各种各样的模型,但是我们是无法从代码中直接十分直观的观察到模型的性能的,只能通过打印一些均值,数据进行比对,从而判定模型的性能,这是十分抽象的。
但是TensorBoard提供了一种可视化的渠道,在我们进行模型训练的时候,TensorBoard会记录我们的训练日志,训练照片,并且还会标注均值,时间,等数值,这就是得模型的训练更加直观,形象。
通过直线图等等图像,我们可以直观的看到模型的性能,从而对模型进行及时的改进。
TensorBoard的使用(Pycharm为例):
首先打开Pycharm打开一个新的文件,新建一个py文件,这里我以Tensorboard为名,新建过后,开始导入模块:
导入模块:
# 导入使用Tensorboard的模块
from torch.utils.tensorboard import SummaryWriter # 注意!!! S W 均是大写,小写的话Pycharm可能会提示没有
# 导入处理照片的模块
from PIL import Image
# 导入Numpy模块 (有大用,对照片的格式进行转换,因为SummaryWriter中的函数对照片格式有要求,具体看后续代码)
import numpy as np
实例化SummaryWriter对象:
# 对象名可以随便起,
# logs则是Tensorboard保存数据的默认文件名,你也可以随便改
writer = SummaryWriter("logs")
对照片进行相关处理:
# 导入照片路径
# 绝对路径,相对路径都可以
# 如果使用相对路径记得放在一起
image_path ="F:\\Python\\Learn_Pytorch\\dataset\\train\\ants\\5650366_e22b7e1065.jpg"
# 打开照片
img_PIL = Image.open(image_path)
# 对照片的格式进行转换
img_array = np.array(img_PIL)
# 将照片添加到Tensorboard中
writer.add_image("test", img_array, 1, dataformats='HWC')
writer.close()
打开tensorboard:
1. 打开Pycharm终端:
2. 输入以下代码:
tensorboard --logdir=logs
# --logdir=你设置的文件名称
3. 点击链接进入网站;
对照片格式进行转换的原因:
我们找到 writer.add_image()这个函数;
鼠标移动到代码上面 按住 ctrl + 左键,进入函数解释文档
红框中的意思大概就是,你传入数据的格式必须是numpy.ndarray,Tensor,或者是string, blobname类型
但是我们的是PIL类型,所以,如果不更改的话就会出现报错!
:::
完整代码:
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
writer = SummaryWriter("logs")
image_path ="F:\\Python\\Learn_Pytorch\\dataset\\train\\ants\\5650366_e22b7e1065.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)
writer.add_image("test", img_array, 1, dataformats='HWC')
writer.close()
OK,以上就是Tensorboard在Pycharm中的用法,快去亲自试试吧!