美文网首页
tensorboard的使用

tensorboard的使用

作者: 过气海豹 | 来源:发表于2021-09-27 00:49 被阅读0次

    1 引入

    1.1从pytorch1.1后可以使用tensorboard
    1.2常见的两种tensorboard展示数据的例子:


    tensorboard展示例子.png

    *右侧loss图像,左侧展示训练的第N布的output结果

    2 使用方法

    2.1 头文件

    #从torch的utils工具箱中导入tensorboard工具中的SummaryWriter类
    from torch.utils.tensorboard import SummaryWriter
    

    2.2 调用方法

    #使用这个函数需要定义一个文件夹名称,这个文件夹存储实例的事件文件
    writer = SummaryWriter("logs")
    
    #关闭
    writer.closer()
    

    2.3 常用函数(add_scalar()、add_image())

    2.3.1 writer.add_scalar("tag" , y , x )

    将y=2x的图像画在tensorboard上,

    for i in range(100):
        writer.add_scalar("y=2x", 2*i, i)#参数分别为:标题,y轴,x轴
    

    结果:


    上传标量数据

    *注:出现比较怪的图像的话,把logs文件夹下的文件全部删除,再按ctrl+c取消下面命令的运行,再重新运行命即可。

    2.3.2 writer.add_image("tag", path, step, dataformats)

    #使用这个函数需要定义一个文件夹名称,这个文件夹存储实例的事件文件
     writer = SummaryWriter("logs")
     image_path = "dataset\\train\\bees\\16838648_415acd9e3f.jpg"
    #使用Image.open()打开图片图片的数据类型为PIL型
     img_PIL = Image.open(image_path)
    #将PIL型图片转化为numpy型,因为writer.add_image()函数只能接收numpy型和torch.tensor型图片
     img_array = np.array(img_PIL)
    #'HWC'分别代表高度、宽度和通道数,因为add_image()接收的图片shape也有要求。
    #如果不改名称的话,所有的图片都会展示在一个框下,可以通过拖动标尺查看不同的图片
     writer.add_image("train",img_array,2,dataformats='HWC')#参数分别为:名称,图片地址,训练步数,图片shape格式
    

    结果:


    上传图片

    3 命令

      tensorboard --logdir=logs --port=6007#logdir=事件文件所在文件夹名,port为指定端口
    
    附 全部代码
    from torch.utils.tensorboard import SummaryWriter#从torch的utils工具箱中导入tensorboard工具中的SummaryWriter类
    from PIL import Image
    import numpy as np
    
    writer = SummaryWriter("logs")#使用这个函数需要定义一个文件夹名称,这个文件夹存储实例的事件文件
    image_path = "dataset\\train\\bees\\16838648_415acd9e3f.jpg"
    img_PIL = Image.open(image_path)#使用Image.open()打开图片图片的数据类型为PIL型
    img_array = np.array(img_PIL)#将PIL型图片转化为numpy型,因为writer.add_image()函数只能接收numpy型和torch.tensor型图片
    writer.add_image("train",img_array,2,dataformats='HWC')#'HWC'分别代表高度、宽度和通道数,因为add_image()接收的图片shape也有要求。
    
    for i in range(100):
        writer.add_scalar("y=2x",2*i,i)#标题,y轴,x轴
    
    writer.close()
    

    参考视频:
    https://www.bilibili.com/video/BV1hE411t7RN?p=9&spm_id_from=pageDriver

    相关文章

      网友评论

          本文标题:tensorboard的使用

          本文链接:https://www.haomeiwen.com/subject/bewwgltx.html