栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pytorch框架学习记录2——TensorBoard的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pytorch框架学习记录2——TensorBoard的使用

Pytorch框架学习记录2——TensorBoard的使用

Tensorboard在训练模型时很有用,可以看训练过程中loss的变化。之前用于Tensorflow框架,自Pytorch1.1之后,Pytorch也加了这个功能。

1. TensorBoard的使用

从torch.utils.tensorboard中导入SummaryWriter类。

1.1 SummaryWriter类使用

SummaryWriter类可以在指定文件夹生成一个事件文件,这个事件文件可以对TensorBoard解析。

首先实例化一个SummaryWriter的类,参数代表保存的文件夹的名称

writer = SummaryWriter("logs")  #文件夹名称
1.2 writer.add_scalar()方法:
def add_scalar(
    self,
    tag,
    scalar_value,
    global_step=None,
    walltime=None,
    new_style=False,
    double_precision=False,
):

上面是官方定义的参数,这个方法是添加标量的意思。

tag:所画图标的title,str类型,注意引号

scalar_value:需要保存的数值,对应y轴的y值

global_step:全局的步数,对应x轴

这里的tag起到唯一标识图像的作用,如果需要两幅图,则重新改写tag!!!

1.4 举例

绘制y = x 的图像。

from torch.utils.tensorboard import SummaryWriter


writer = SummaryWriter("logs")

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

writer.close()
1.5 add_image()方法
def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW'):
'''
        Args:
            tag (string): Data identifier
            img_tensor (torch.Tensor, numpy.array, or string/blobname): Image data
            global_step (int): Global step value to record
            walltime (float): Optional override default walltime (time.time())
              seconds after epoch of event
        Shape:
            img_tensor: Default is :math:`(3, H, W)`. You can use ``torchvision.utils.make_grid()`` to
            convert a batch of tensor into 3xHxW format or call ``add_images`` and let us do the job.
            Tensor with :math:`(1, H, W)`, :math:`(H, W)`, :math:`(H, W, 3)` is also suitable as long as
            corresponding ``dataformats`` argument is passed, e.g. ``CHW``, ``HWC``, ``HW``.
'''

其中,img_tensor参数类型要求为:torch.Tensor、numpy.array或者string类型。global_step为步骤,int类型。

img_tensor默认的图片尺寸格式为(3,H,W),但是一般我们的图片格式为(H,W,3),因此需要对图片格式进行调整,调整的方法如下:设置dataformats='HWC'即可!!!

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

writer = SummaryWriter("logs")

img_path = "C:\Users\hp\PycharmProjectspythonProject\Pytorch_Learning\flower_data\traindaisy\5547758_eea9edfd54_n.jpg"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)
print(type(img_array))
writer.add_image("test", img_array, 1, dataformats='HWC')

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

writer.close()

1.6 事件文件打开方法:

在PyCharm中,找到项目所在的terminal,

tensorboard --logdir=事件文件所在的文件夹名 --port=端口号

在弹出的网址上打开即可。


2. 常见的报错情况 2.1 ImportError: TensorBoard logging requires TensorBoard version 1.15 or above

tensorboard版本过低,卸载后重新安装最新版本。

2.2 AttributeError: module ‘tensorflow._api.v1.io’ has no attribute ‘gfile’

tensorflow 的版本和tensorboard的版本不匹配。升级tensorflow版本为2.0版本即可,执行下面命令会自动升级tensorflow版本和tensorboard版本:

pip install tensorflow==2.0

2.3 ModuleNotFoundError: No module named ‘grpc’

重新安装grpcio

pip uninstall grpcio

pip install grpcio

2.4 No dashboards are active for the current data set.

打开的文件位置不存在,将文件夹位置的绝对路径复制,然后重新执行terminal语句即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029876.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号