• pytorch框架学习(tensorboard的使用)


    什么是tensorboard

    tensorboard是一个可视化工具,它可以把训练过程中的数据变化以图像的形式绘制出来,或者记录训练过程中使用的图片

    tensorboard的安装:

    pycharm的终端中输出安装命令后自动安装——

    pip install tensorboard

    SummaryWriter:

    理解:

    summarwriter是pytorch库里的一个类,用来在给定目录中创建事件文件,并向其中添加摘要和事件,以供 TensorBoard 使用

    导入:

    from torch.utils.tensorboard import SummaryWriter

    add_scalar()方法:

    它用于将一个标量值添加到一个记录器或日志文件中

    主要参数:标签,scalar_value,global_step

    标签就是图的说明(表头),scalar_value简单理解为y轴值(函数值),global_step简单理解为x轴值(变量值)

    绘制并查看:

    代码:

    1. from torch.utils.tensorboard import SummaryWriter#导入SummaryWriter类
    2. writer = SummaryWriter("logs") # 用SummaryWriter示例化writer对象,用于记录日志
    3. # 假设绘制y = 2*x的图像
    4. for i in range(100):
    5. # 参数:标签 , 函数值 , 变量值
    6. writer.add_scalar("y=2*x", 2 * i, i)
    7. #注意:y=2*x的含义为函数值是变量值的两倍,故参数二是2*i,参数三是i
    8. writer.close()#回收对象

    运行结果: 

    接着需要打开这个日志文件,步骤如下:

    ①在终端输入如下命令:

    tensorboard --logdir=logs

    ②得到网址,默认端口为6006,点击直接跳转,得到绘制好的图像

    ③(可选)输入以下命令可以指定生成结果的端口:

    tensorboard --logdir=logs --port=6007

    add_image()方法:

    它用于将一张图片添加到一个记录器或日志文件中

    主要参数:标签,img_tensor,global_step,参数格式=' '

    标签就是图片的说明,img_tensor要求是一个tensor类型或者numpy类型,因此使用PIL的Image.open()方法打开图片后还需要进行一步类型转换,如下:

    1. import numpy as np # 导入numpy库的np工具包,为np.array()依赖
    2. image_path = "MYDATA/train/ants_image/0013035.jpg" # 图片的相对路径
    3. img_PIL = Image.open(image_path) # 打开图片
    4. img_array = np.array(img_PIL) # 更改为numpy类型

    再结合前面的知识点,就能对图片进行记录了,完整代码如下:

    1. from torch.utils.tensorboard import SummaryWriter
    2. from PIL import Image
    3. import numpy as np
    4. writer = SummaryWriter("logs") # 用SummaryWriter示例化writer对象,用于记录日志
    5. image_path = "MYDATA/train/ants_image/0013035.jpg"
    6. img_PIL = Image.open(image_path) # 打开图片
    7. print(type(img_PIL))
    8. # 这里是测试(打印)Image.open()返回的类型,结果为<class 'PIL.JpegImagePlugin.JpegImageFile'->
    9. # <-这个类型不被add_image()支持,因此使用更np.array()改为numpy类型
    10. img_array = np.array(img_PIL)
    11. print(type(img_array)) #查看转换后的类型,结果是<class 'numpy.ndarray'>
    12. print(img_array.shape) #查看图片格式,结果为(512, 768, 3),即HWC
    13. writer.add_image("no.1", img_array, 2, dataformats = 'HWC')
    14. #注:add_image()默认图片为CHW格式,可通过dataformats = 'HWC'指定格式
    15. writer.close()
  • 相关阅读:
    网页url完整请求流程介绍
    OpenCV读取图像时按照BGR的顺序HWC排列,PyTorch按照RGB的顺序CHW排列
    建一个chrome插件crx所需步骤
    input输入路径,读取图片尺寸,移动手机截图“满屏”相同尺寸图片到别的文件夹
    win11电脑怎么设置定时关机
    Vue指令总结
    【智慧公寓】东胜物联嵌入式硬件解决方案,为智慧公寓解决方案商降本增效,更快实现产品规模化生产
    ST/意法STTH30ST06-Y车规FRD,原厂渠道ASEMI代理
    Android如何管理多进程
    API接口安全运营研究
  • 原文地址:https://blog.csdn.net/liKeQing1027520/article/details/134233421