Tensorboard简介及常用函数介绍

Tensorboard

Tensorboard是tensorflow内置的一个可视化工具,它通过将tensorflow程序输出的日志文件的信息可视化使得tensorflow程序的理解、调试和优化更加简单高效。Tensorboard的可视化依赖于tensorflow程序运行输出的日志文件,因而tensorboard和tensorflow程序在不同的进程中运行。

打开Pycharm,设置环境

Tensorboard简介及常用函数介绍_第1张图片

安装tensorboard

Tensorboard简介及常用函数介绍_第2张图片





常用函数

SummaryWriter()

SummaryWriter 创建一个tensorboard文件, 文件保存在log_dir 目录(自己指定的目录)写文件,该文件可以被tensorboard解析

参数:
log_dir: 保存目录位置。 默认值为 run/CURRENT_DATETIME_HOSTNAME ,每次运行后都会更改。
使用分层文件夹结构可以轻松比较运行情况。 例如 为每个新实验传递“ runs / exp1”,“ runs / exp2”等,以便在它们之间进行比较。
flush_secs: 表示写入tensorboard文件的时间间隔

调用方式如下:

writer = SummaryWriter(log_dir='logs',flush_secs=60)


writer.add_graph()

这个函数用于在tensorboard中创建Graphs,Graphs中存放了网络结构,其中常用参数有:

model:pytorch模型
input_to_model:pytorch模型的输入



writer.add_scalar()

这个函数用于在tensorboard中加入loss,其中常用参数有:

tag:标签,如下图所示的Train_loss
scalar_value:标签的值
global_step:标签的x轴坐标

writer.add_scalar('Train_loss', loss, (epoch*epoch_size + iteration))


tensorboard --logdir=

在完成tensorboard的logs文件的生成后,可在命令行调用该文件,tensorboard网址。
具体代码如下(版本不同,命令会有差异):

tensorboard --logdir=logs

tensorboard --logdir="logs"

tensorboard --logdir "log"

也可指定端口名(一台服务器可能多个人在一起训练,同时使用一个端口可能冲突):

tensorboard --logdir=logs --port=6007

在完成tensorboard文件的生成后,可在命令行调用该文件,tensorboard网址。
具体代码如下:

Tensorboard简介及常用函数介绍_第3张图片

点击一下蓝色字体的网站:
Tensorboard简介及常用函数介绍_第4张图片

在这里插入图片描述

这一步出现错误可以参考:【解决方案汇总】No dashboards are active for the current data set. Probable causes_别下完这场雪-CSDN博客

代码示例:

"""
SummaryWriter 创建一个tensorboard文件, 文件保存在log_dir 目录写文件,该文件可以被tensorboard解析
参数:
log_dir:        保存目录位置。 默认值为 run/CURRENT_DATETIME_HOSTNAME ,每次运行后都会更改。
                使用分层文件夹结构可以轻松比较运行情况。 例如 为每个新实验传递“ runs / exp1”,“ runs / exp2”等,以便在它们之间进行比较。
flush_secs:     表示写入tensorboard文件的时间间隔
"""
from torch.utils.tensorboard import SummaryWriter


writer = SummaryWriter("logs")            # 创建SummaryWriter() 类实例,将对应的事件文件存储到 logs 文件中

# writer.add_image()

"""
add_scalar(): 将数添加到summary中
参数:
tag: 图标的标题
scalar_value:   需要保存的数值,对应y轴
global_step:    训练到多少步的时候对应的数值是多少,对应x轴

     
"""
for i in range(100):
    writer.add_scalar("y = x", i, i)                       # 添加标量,即数

writer.close()

安装open-cv包:pip install opencv-python

Tensorboard简介及常用函数介绍_第5张图片



add_image()

绘制图片,可用于检查模型的输入,监测 feature map 的变化,或是观察 weight。
参数:

  • tag: 就是保存图的名称

  • img_tensor:图片的类型要是torch.Tensor, numpy.array, or string这三种

  • golbal_step:第几张图片

  • dataformats=‘CHW’,默认CHW,tensor是CHW,numpy是HWC,C:channel H:high W:weight. 从PIL到numpy,

    需要在add_image()中指定shape中每一个数字/维度的含义

从PIL到numpy,需要在add_image()中指定shape中每一个数字/维度的含义

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np


writer = SummaryWriter("logs")  # 创建SummaryWriter() 类实例,将对应的事件文件存储到 logs 文件中

image_path = "dataset/train/ants_image/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)

"""
add_image(): 绘制图片,可用于检查模型的输入,监测 feature map 的变化,或是观察 weight。
参数:
    tag: 就是保存图的名称
    img_tensor:图片的类型要是torch.Tensor, numpy.array, or string这三种
    golbal_step:第几张图片
    dataformats=‘CHW’,默认CHW,tensor是CHW,numpy是HWC,C:channel H:high W:weight. 
"""
writer.add_image("test", img_array, 1, dataformats='HWC')   # 不指定 dataformats='HWC' 会出现错误

writer.close()

执行上面的语句,在控制台输入 tensorboard --logdir=logs

在这里插入图片描述

进入网站,点击Images:

Tensorboard简介及常用函数介绍_第6张图片

你可能感兴趣的:(tensorflow,pycharm,python)