0


PyCharm中TensorBoard的安装和使用

1.TensorBoard的安装

1.1 关于TensorBoard

    TensorBoard是Google开发的一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中,主要用于记录机器学习的过程。
  • 跟踪和可视化损失及准确率等指标
  • 可视化模型图(操作和层)
  • 查看权重、偏差或其他张量随时间变化的直方图
  • 将嵌入投射到较低的维度空间
  • 显示图片、文字和音频数据
  • 剖析 TensorFlow 程序

【嘿,没看懂。】

另篇文章介绍的功能是:

  • 记录损失变化、准确率变化等
  • 记录图片变化、语音变化、文本变化等,例如在做GAN时,可以过一段时间记录一张生成的图片
  • 绘制模型

【这个好理解了点。】

1.2 TensorBoard的安装(只看加粗字体就行)

在命令行中,先进入虚拟环境:activate pytorch

然后使用pip进行安装:pip install tensorboard

然后运行示例代码:

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")

for i in range(100):
    writer.add_scalar("y=x", i, i)

writer.close()

发现报错,错误原因是TensorBoard版本过低:

在终端中输入conda list 查看Tensorboard版本,1.10.0,确实低。

卸载TensorBoard,命令:pip uninstall tensorboard

重新安装一个高版本的TensorBoard:pip install tensorboard==2.3.0

又报错了。

更新下pip试试:python -m pip install --upgrade pip

没用,还是报错。

下载grpcio:

pip install grpcio
pip install grpcio-tools

一直超时。

加上镜像源下载grpcio

pip install grpcio -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install grpcio-tools -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

那叫一个丝滑,瞬间下完了。

然后重新下载Tensorboard:

pip install tensorboard==2.10.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

下载成功!

再试试运行示例代码,没报错,运行成功:

项目目录下多了个叫logs的文件夹。

2.TensorBoard的使用

2.1 SummaryWriter类

    官方文档解释(加腾讯翻译):       

    将条目直接写入log_dir中的事件文件, 由TensorBoard使用。 “SummaryWriter”类提供了一个高级API来创建事件文件 并向其中添加摘要和事件。该类将异步地更新文件内容。这允许训练程序调用方法 直接从训练循环向文件添加数据,而不会减慢训练速度。
(1)add_scalar(tag, scalar_value, global_step)
其中,第一个是图的标题;第二个是需要保存的数值,对应y轴;第三个是全局的步数,对应x轴

添加一个标量数据(scalar data)到summary中,主要用来绘制图表。

用的就是上面的示例代码,再粘一次:

from torch.utils.tensorboard import SummaryWriter
# 从torch(大工具箱中)的 utils(常用的工具箱)中导入tensorboard,然后导入了SummaryWriter这个类

writer = SummaryWriter("logs")
# 创建实例

# 常用的两个方法writer.add_image()和writer.add_scalar()

# writer.add_scalar()
for i in range(100):
    writer.add_scalar("y=x", i, i) 
    # 第一个是图的标题;第二个是需要保存的数值,对应y轴;第三个是全局的步数,对应x轴

writer.close()

然后在下面终端中输入如下命令:

tensorboard --logdir=logs (logdir=事件文件所在文件夹名)

假如需要指定端口号则在后面加上port:

tensorboard --logdir=logs --port=6007(指定端口号6007)

运行后如下:

网页打开如下(报错了),原因是我的py文件在pythonProject下的learn_dataset文件夹内,而终端在pythonProject下运行。

cd到python文件所在的目录,然后重新输入命令tensorboard --logdir=logs --port=6007即可。

打开网址长这个样:

【注,标题一样将会在同一个图里展示】

(2)add_image(tag, img_tensor, global_step,dataformats='CHW')
其中,第一个是图的标题;第二个是图像数据类型;第三个是训练的步骤;第三个是数据格式。
        img_tensor需要是以下几种类型:torch.Tensor, numpy.array, or string/blobname,别滴不行,需要强制类型转换。
        dataformats中,H、W、C分别表示图像的高度、宽度和通道数,比如CHW, HWC, HW。假如图像的格式是CHW则可以省略,是别的需要在函数中定义dataformats的格式。
        [应该可以省略吧?我猜的。]

该函数通常用来观察训练结果。

测试代码:

from torch.utils.tensorboard import SummaryWriter
# 从torch(大工具箱中)的 utils(常用的工具箱)中导入tensorboard,然后导入了SummaryWriter这个类
import numpy as np
# 为了转换数据类型
from PIL import Image

writer = SummaryWriter("logs")
# 创建实例
image_path = "datas/val/ants/800px-Meat_eater_ant_qeen_excavating_hole.jpg"

img_PIL = Image.open(image_path)
# print(type(img))  此时数据类型不能用于add_image()函数
image_array = np.array(img_PIL)  # 将数据类型强制转换为numpy.array类型
print(image_array.shape)    # 查看图像尺寸格式,是(533, 800, 3),即为HWC,高度、宽度和通道数
writer.add_image("test", image_array, 1, dataformats='HWC')
# 从PIL到numpy,需要指定shape中每个数字/维表示的含义,就是这一步:dataformats='HWC'

writer.close()

在终端中输入tensorboard --logdir=logs

运行后得到:

    当更改图片路径以及image()函数中的训练步数时(不更改title),会发现图片显示step2的,并且可以实现和step1之间的切换:

其中代码只改变了:

# image_path = "datas/val/ants/800px-Meat_eater_ant_qeen_excavating_hole.jpg"
image_path = "datas/val/bees/6a00d8341c630a53ef00e553d0beb18834-800wi.jpg"

以及:

# writer.add_image("test", image_array, 1, dataformats='HWC')
writer.add_image("test", image_array, 2, dataformats='HWC')

假如把图的title一起改变(我改成了test2),就能得到一个新的图。

标签: pycharm python

本文转载自: https://blog.csdn.net/weixin_66333084/article/details/136162977
版权归原作者 小呀小白菜~ 所有, 如有侵权,请联系我们删除。

“PyCharm中TensorBoard的安装和使用”的评论:

还没有评论