Tensorboard安装及使用

人工智能115

TensorBoard 是 TensorFlow 提供的实用工具(utility),可以图形化的显示 computational graph(计算图)。

Tensorboard原本是Google TensorFlow的可视化工具,可以用于记录训练数据、评估数据、网络结构、图像等,并且可以在web上展示,对于观察神经网络的过程非常有帮助。PyTorch也推出了自己的可视化工具,一个是tensorboardX包,一个是torch.utils.tensorboard,二者的使用相差不大。

1 配置要求

  • 操作系统:Windows
  • Python3
  • PyTorch >= 1.0.0 && torchvision >= 0.2.1 && tensorboard >= 1.12.0 1

2 安装

虽说PyTorch中直接有tensorboard的包,但是有时用的时候还是会报错,所以安装TensorFlow之后torch.utils.tensorboard就可以直接使用且稳定,所以这里介绍安装TensorFlow的方法。

(1)pip环境(相对麻烦需要下载依赖项)

pip install tensorflow_gpu=2.5.0 -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install six numpy wheel
pip install keras_applications=1.0.6 --no-deps
pip install keras_preprocessing=1.0.5 --no-deps

(2)conda环境安装

conda install --channel https://conda.anaconda.org/anaconda tensorflow=2.5.0

3 使用

(1)导入tensorboard,实例化SummaryWriter类,指明记录日记路径等信息

#from torch.utils.tensorboard import SummaryWriter
from tensorboardX import SummaryWriter # 此二者择其一,能用即可
#实例化SummaryWriter,并指明日志存放路径。如果在当前目录,每月logs目录将自动创建
#如果不写log_dir,系统将会创建runs目录
writer = SummaryWriter(log_dir = 'logs')
#调用实例
writer.add_xxx()
#关闭writer
writer.close()

(2)调用相应的API,接口一般格式为:

add_xxx(tag_name, object, iteration-number)

(3)启动tensorboard,在命令行中输入

tensorboard --logdir=r'加logs所在路径'
tensorboard --logdir=r'加logs所在路径' --port=6007 #指定端口为6007

(4)复制网址在浏览器中打开,或直接点击网址,使用默认浏览器打开

(1)add_image()

# 绘制图片,可用于检查模型的输入,监测 feature map 的变化,或是观察 weight。
add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats=‘CHW’)

tag:就是保存图的名称 img_tensor:图片的类型要是torch.Tensor, numpy.array, or string这三种 global_step:第几张图片 dataformats='CHW',默认CHW,tensor是CHW,numpy是HWC

from tensorboardX import SummaryWriter
import  numpy as np
from PIL import Image
​
writer = SummaryWriter("logs")
image_path = "C:/Users/msi/Desktop/20200103_212904.jpg"
image_PIL = Image.open(image_path)
img_array = np.array(image_PIL) # 将图片转化成numpy类型
print(img.shape) # 打印图片的高、宽、通道数
writer.add_image("test", img, 1, dataformats='HWC')
​
writer.close()
​
​

(2)单条曲线

add_scalar(tag, scalar_value, global_step=None, walltime=None)

tag ( string ) – 数据标识符 scalar_value ( float或string/blobname ) – 要保存的值 global_step ( int ) – 要记录的全局步长值 walltime ( float ) – 记录训练的时间,默认 walltime (time.time()) 秒 new_style ( boolean ) – 是使用新样式(张量字段)还是旧样式(simple_value 字段)。新样式可能会导致更快的数据加载。

from tensorboardX import SummaryWriter
import numpy as np
​
writer = SummaryWriter()
for x in range(1, 101) :
    writer.add_scalar('y = 2x', x, 2 * x)
writer.close()
​

(3)多条曲线

add_scalars( main_tag , tag_scalar_dict , global_step = None , walltime = None)

main_tag ( string ) – 标签的父名称 tag_scalar_dict ( dict ) – 存储标签和对应值的键值对 global_step ( int ) – 要记录的全局步长值 walltime ( float ) – 记录训练的时间,默认 walltime (time.time()) 秒

from tensorboardX import SummaryWriter
import numpy as np
​
writer = SummaryWriter()
r = 5
for x in range(1, 101) :
    writer.add_scalars('run_14h', {'xsinx' : x * np.sin(x / r),
                                  'xcosx' : x * np.cos(x / r),
                                  'xtanx' : x * np.tan(x / r)}, x)
writer.close()

(4)直方图

add_histogram( tag , values , global_step = None , bins = 'tensorflow' , walltime = None , max_bins = None )

tag ( string ) – 数据标识符 值(torch.Tensor、numpy.array或string/blobname)– 构建直方图的值 global_step ( int ) – 要记录的全局步长值 bins ( string ) – {'tensorflow','auto', 'fd', ...} 之一。这决定了柱的制作方式。 walltime ( float ) – 记录训练的时间,默认 walltime (time.time()) 秒

from tensorboardX import SummaryWriter
import numpy as np
​
writer = SummaryWriter()
for step in range(10) :
    x = np.random.randn(1000)
    writer.add_histogram('distribution of gaussion', x, step)
writer.close()

(5)渲染

tag ( string ) – 数据标识符 image( matplotlib.pyplot.figure ) – 图或图列表 global_step ( int ) – 要记录的全局步长值 close ( bool ) – 自动关闭图形的标志 walltime ( float ) – 记录训练的时间,默认 walltime (time.time()) 秒

from tensorboardX import SummaryWriter
import numpy as np
import matplotlib.pyplot as plt
%matplotlib
​
writer = SummaryWriter()
​
x = np.linspace(0, 10, 1000)
y = np.sin(x)
​
figure1 = plt.figure()
plt.plot(x, y, 'r-')
writer.add_figure('my_figure', figure1, 0)
writer.close()

(6)网格

add_graph(model, input_to_model=None, verbose=False, use_strict_trace = True)

model( torch.nn.Module ) – 要绘制的模型。 input_to_model ( torch.Tensor or list of torch.Tensor ) – 要输入的变量或变量元组 verbose(bool)– 是否在控制台中打印图形结构。 use_strict_trace ( bool ) – 是否将关键字参数严格传递给 torch.jit.trace。当您希望跟踪器记录您的可变容器类型(列表、字典)时传递 False.

from tensorboardX import SummaryWriter
import numpy as np
import torch
import torch.nn as nn
​
writer = SummaryWriter()
class MLP(nn.Module) :
    def __init__(self):
        super(MLP, self).__init__()
        self.Net = nn.Sequential(
            nn.Linear(784, 512),
            nn.ReLU(),
​
            nn.Linear(512, 128),
            nn.ReLU(),
​
            nn.Linear(128, 10)
        )
    def forward(self, input):
        input = input.view(-1, 28 * 28)
        return self.Net(input)
model = MLP()
input = torch.FloatTensor(np.random.rand(32, 1, 28, 28))
writer.add_graph(model, input)
​
writer.close()
​

(7)嵌入

add_embedding(mat, metadata=None, label_img=None, global_step = None, tag='default', metadata_header=None)

mat ( torch.Tensor or numpy.array ) – 一个矩阵,每一行都是数据点的特征向量 metadata ( list ) – 标签列表,每个元素都将转换为字符串 label_img ( torch.Tensor ) – 图像对应每个数据点 global_step ( int ) – 要记录的全局步长值 tag ( string ) – 嵌入的名称

Original: https://blog.csdn.net/m0_56729179/article/details/124845393
Author: 数点梅花天地心
Title: Tensorboard安装及使用



相关阅读

Title: 【python 3.8 tensorflow】python3.8及以上安装tensorflow及keras方法

Title: 【python 3.8 tensorflow】python3.8及以上安装tensorflow及keras方法

python3.8及以上安装tensorflow及keras方法

综述

  1. 对于不兼容本地python版本的库安装时会报错:
    ERROR: tensorflow-2.4.1-cp38-cp38-win_amd64.whl is not a supported wheel on this platform.

为了解决这个问题,我们的检查措施是查看本地python支持的文件名及版本
2. tensorflow仅支持python3.7及以下的版本,对于不想退版本的用户来说,可以采用从阿里云下载的方法安装对应高版本的tensorflow

检查本地python支持所能安装的库

在cmd中运行以下代码
python -m pip debug --verbose

Tensorboard安装及使用

我们下面的结果得到支持版本:
Tensorboard安装及使用
本机支持最高版本是cp38-cp38-win_amd64;

python3.8及以上安装tensorflow的方法

  1. 阿里云python库镜像地址:https://mirrors.aliyun.com/pypi/simple
  2. 安装方法
    2.1 pip安装
cmd中运行
pip install --index-url https://mirrors.aliyun.com/pypi/simple/  --trusted-host mirrors.aliyun.com/ tensorflow
pip原始语句
pip install --index-url https://mirrors.aliyun.com/pypi/simple/  --trusted-host mirrors.aliyun.com/

2.2 自行下载对应版本后使用pip安装

pip install + 你下载的文件地址

如:
pip install E:\Anaconda\Lib\tensorflow_gpu-2.0.0-cp37-cp37m-win_amd64.whl

方法拓展-解决pip下载的环境错误

对于本机microsoft visual c++ 的版本不支持的pip下载也可使用本方法
例如:

"error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-buil d-tools/"

可使用本方法解决,已实验验证可行。

解释

本质是由于直接下载whl文件规避了使用microsoft visual c++文件包,所以还有很多人解决这个问题的方法是进python包的官网下载对应的whl文件后安装。
文件下载地址链接 https://matplotlib.org/downloads.html

具体步骤参见:pip安装库文件matplotlib失败(基本都可以解决)https://blog.csdn.net/qq_39586922/article/details/103008544

Original: https://blog.csdn.net/catslikefishes/article/details/121578606
Author: catslikefishes
Title: 【python 3.8 tensorflow】python3.8及以上安装tensorflow及keras方法

Original: https://blog.csdn.net/catslikefishes/article/details/121578606
Author: catslikefishes
Title: 【python 3.8 tensorflow】python3.8及以上安装tensorflow及keras方法