【人工智能概论】 PyTorch可视化工具Tensorboard安装与简单使用
文章目录
一. 安装Tensorboard
1.1 安装Tensorboard
- Tensorboard原本是Tensorflow的可视化工具,但自PyTorch1.2.0版本开始,PyTorch正式内置Tensorboard的支持,尽管如此仍需手动安装Tensorboard。否则会报错。
ModuleNotFoundError: No module named ‘tensorboard’
- 进入相应虚拟环境后,输入以下指令即可安装。
pip install tensorboard
1.2 验证安装
- 输入以下指令,不报错即说明安装成功。
from torch.utils.tensorboard import SummaryWriter
二.Tensorboard功能简介
- Tensorboard常用的四个功能
- graphs: 保存网络结构图;
- scalars: 精确度,学习率,损失曲线;
- histograms: 训练权重分布;
- images: 展示图像信息。
- 画线——add_scalaar
from torch.utils.tensorboard import SummaryWriter# 创建编辑器,保存日志,指令保存路径log_dirwriter = SummaryWriter(log_dir="./logs") # 指定保存位置# y = 2 * xfor i in range(100): # 添加,x轴,y轴 # tag: 名, scalar_value: y轴, global_step: x轴 writer.add_scalar(tag="y=2x",scalar_value=2*1,global_step=i)# 关闭writer.close()
- 在PyCharm里执行以上代码,就会在生成的logs文件夹里保存相关文件。
- 在PyCharm的虚拟环境终端中进入到logs的上级目录,输入启动指令(如下),点击生成的链接即可查看结果。
# 使用默认端口tensorboard --logdir=logs# 使用指定端口tensorboard --logdir=logs --port=6007
- 终端键入
Ctrl + C
结束进程。
- 展示单张图像——add_image
from torch.utils.tensorboard import SummaryWriterimport numpy as npfrom PIL import Image# 创建编辑器,保存日志,指令保存路径log_dirwriter = SummaryWriter(log_dir="./logs") # 指定保存位置# 图像地址image_path = "/home/chenshili/图片/food_01.jpeg"# 打开图像img_PIL = Image.open(image_path) # 用PIL打开的图像,其文件格式是PIL的特有类# 转化成numpy数据,因为add_image只能传入array或者tensor数据,所以要做类型转化。img_array = np.array(img_PIL)# 开始画图,tag: ,img_tensor: tensor或者numpy类型的数据, dataformats: H高W宽C通道,指定HWC类型writer.add_image(tag="train",img_tensor=img_array,global_step=1,dataformats="HWC")# 关闭writer.close()
- 画模型——add_graph
from torch.utils.tensorboard import SummaryWriterimport torchfrom torch.nn import Linear,ReLU,Sequential# 创建编辑器,保存日志,指令保存路径log_dirwriter = SummaryWriter(log_dir="./logs") # 指定保存位置model = Sequential( Linear(1,10), ReLU(), Linear(10,1))data = torch.ones(10,1)writer.add_graph(model=model,input_to_model=data)# 关闭writer.close()
- 模型对比
from torch.utils.tensorboard import SummaryWriterimport osimport datetime# 按时间构建生成文件保存的文件夹log_dir = os.path.join("./logs",datetime.datetime.now().strftime("%Y%m%d_%H%M%S"))print(log_dir)# 创建编辑器,保存日志,指令保存路径log_dirwriter = SummaryWriter(log_dir=log_dir) # 指定保存位置for i in range(100): writer.add_scalar(tag="loss",scalar_value=1*i,global_step=i) # 多执行几次把scalar_value的值做修改,如2*i,i等# 关闭writer.close()
来源地址:https://blog.csdn.net/qq_44928822/article/details/128722693