当前位置: 首页 > news >正文

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轴值(变量值)

绘制并查看:

代码:

from torch.utils.tensorboard import SummaryWriter#导入SummaryWriter类

writer = SummaryWriter("logs")  # 用SummaryWriter示例化writer对象,用于记录日志

# 假设绘制y = 2*x的图像
for i in range(100):
    # 参数:标签 , 函数值 , 变量值
    writer.add_scalar("y=2*x", 2 * i, i)
    #注意:y=2*x的含义为函数值是变量值的两倍,故参数二是2*i,参数三是i
writer.close()#回收对象

运行结果: 

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

①在终端输入如下命令:

tensorboard --logdir=logs

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

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

tensorboard --logdir=logs --port=6007

add_image()方法:

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

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

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

import numpy as np # 导入numpy库的np工具包,为np.array()依赖

image_path = "MYDATA/train/ants_image/0013035.jpg" # 图片的相对路径
img_PIL = Image.open(image_path) # 打开图片
img_array = np.array(img_PIL) # 更改为numpy类型

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

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

writer = SummaryWriter("logs") # 用SummaryWriter示例化writer对象,用于记录日志
image_path = "MYDATA/train/ants_image/0013035.jpg"
img_PIL = Image.open(image_path) # 打开图片
print(type(img_PIL))
    # 这里是测试(打印)Image.open()返回的类型,结果为<class 'PIL.JpegImagePlugin.JpegImageFile'->
    # <-这个类型不被add_image()支持,因此使用更np.array()改为numpy类型
img_array = np.array(img_PIL)
print(type(img_array)) #查看转换后的类型,结果是<class 'numpy.ndarray'>
print(img_array.shape) #查看图片格式,结果为(512, 768, 3),即HWC
writer.add_image("no.1", img_array, 2, dataformats = 'HWC')
    #注:add_image()默认图片为CHW格式,可通过dataformats = 'HWC'指定格式
writer.close()
http://www.dtcms.com/a/4087.html

相关文章:

  • IP-guard flexpaper远程命令执行漏洞复现 [附POC]
  • 搜索引擎项目
  • 信道复用技术
  • ssm823基于ssm的心理预约咨询管理系统的设计与实现+vue
  • 如何实现MQTT协议数据传输?
  • 日志日常开发备用
  • 【R Error系列】r - fatal error : RcppEigen. h:没有这样的文件或目录
  • 【word密码】word设置只读方式的四个方法
  • 大数据毕业设计选题推荐-生产大数据平台-Hadoop-Spark-Hive
  • aliyun Rest ful api V3版本身份验证构造
  • 测试员练就什么本领可以让自己狂揽10个offer
  • 婴儿洗衣机哪个牌子比较好?好用的内衣洗衣机推荐
  • Django配置文件,request,链接mysql方法,Orm简介
  • 马尔可夫过程
  • Flink SQL --Flink 整合 hive
  • git命令汇总
  • Easyui DataGrid combobox联动下拉框内容
  • 修改浏览器滚动条样式--ios同款
  • 移动端APP版本治理
  • 设计模式——原型模式(Prototype Pattern)
  • 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(二)
  • Leetcode刷题详解—— 图像渲染
  • Vatee万腾的数字化掌舵:Vatee科技引领未来的新高度
  • 【python】Django——templates模板、静态文件、django模板语法、请求和响应
  • python实现炒股自动化,个人账户无门槛量化交易的开始
  • Elasticsearch 外部词库文件更新
  • 依赖倒转原则接口隔离原则迪米特法则合成复用原则
  • MongoDB索引覆盖查询
  • AUTOSAR汽车电子嵌入式编程精讲300篇-面向车载CAN网络的路由和ECU刷写方法
  • openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述