TensorBoard的使用

TensorBoard:对图像进行变换

1. SummaryWriter的使用

ctrl类出现注释解析:

将条目直接log_dir写入要成为由TensorBoard使用。

“摘要编写器”类提供了一个高级 API 来创建事件文件,并在给定目录中添加摘要和事件。该类更新文件内容异步。这允许训练程序调用方法直接从训练循环向文件添加数据,而不会减慢速度训练。

# 创建实例
writer = SummaryWriter("logs")# writer.add_image()
# 绘制 y = x
for i in range(100):# scalar_value---x轴, global_step---y轴writer.add_scalar("y=x", i, i)writer.close()

缺少tensorboard,进入Anaconda Prompt装包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorboard

运行成功后目录多了个logs文件

在这里插入图片描述

查看logs

logdir=事件文件所在文件夹名

如果是在AnacondaPrompt里,一定要用logs的绝对路径,否则点进入端口会发现没有张量板

在这里插入图片描述

其中http://localhost:6006/就是训练端口

也可重新指定端口防止发生冲突

tensorboard --logdir=logs --port=自定义

在这里插入图片描述

同理绘制 y=2x

# 绘制 y=2x
for i in range(100):writer.add_scalar("y=2x", 2*i, i)

返回浏览器进行刷新

在这里插入图片描述

  • 注意:tag要注意不同,如果两个tag相同可能会导致两张图绘制在一起造成歧义

2. add_image()的使用

常用来观察训练结果

def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats="CHW"):
#tag:图像名
#img_tensor::图像的数据类型,(torch.Tensor, numpy.ndarray, or string/blobname): Image data
#global_step:训练步骤
#后几个参数不常用

#可以利用Opencv读取图片,获得numpy型图片数据

图像的原始数据类型为PIL.JpegImagePlugin.JpegImageFile

在这里插入图片描述

也可以利用numpy.array(),对PIL图片进行转化

在这里插入图片描述

将PIL类型的img变量转成numpy型图片数据并赋值给img_array变量

在这里插入图片描述

示例代码:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image# 创建实例
writer = SummaryWriter("logs")
# img_path = "hymenoptera_data/train/ants_image/0013035.jpg" 查看蚂蚁
img_path = "hymenoptera_data/train/bees_image/16838648_415acd9e3f.jpg"
img_PIL = Image.open(img_path)  # 获取的是PIL类型的变量
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)  # 打印img_array的格式 为三通道型
# 根据img_array的类型指定dataformats参数类型
writer.add_image("train", img_array, 1, dataformats='HWC')# # 绘制 y = x
# for i in range(100):
#     # tag---图表名称, scalar_value---x轴, global_step---y轴
#     writer.add_scalar("y=x", i, i)# 绘制 y=2x
for i in range(100):writer.add_scalar("y=2x", 2*i, i)writer.close()

查看logs文件

在这里插入图片描述

进入网址进行刷新

在这里插入图片描述

查看蜜蜂只用改动

img_path = "hymenoptera_data/train/bees_image/16838648_415acd9e3f.jpg"
writer.add_image("test", img_array, 2, dataformats='HWC')

不改动tag,会将两张图放在一起,可以通过滑动滑块查看

在这里插入图片描述

如果想单独显示只需要改动tag

writer.add_image("train", img_array, 1, dataformats='HWC')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/87678.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ceph peering机制-状态机

本章介绍ceph中比较复杂的模块: Peering机制。该过程保障PG内各个副本之间数据的一致性,并实现PG的各种状态的维护和转换。本章首先介绍boost库的statechart状态机基本知识,Ceph使用它来管理PG的状态转换。其次介绍PG的创建过程以及相应的状…

Java学数据结构(4)——散列表Hash table 散列函数 哈希冲突

目录 引出散列表Hash table关键字Key和散列函数(hash function)散列函数解决collision哈希冲突(碰撞)分离链接法(separate chaining)探测散列表(probing hash table)双散列(double hashing) Java标准库中的散列表总结 引出 1.散列表,key&…

day2 牛客TOP100:BM 11-20 链表 二分法 流输入 小美加法

文章目录 链表BM11 链表相加(二)BM12 单链表的排序归并排序分割 超时辅助数组快排 BM13 判断一个链表是否为回文结构BM14 链表的奇偶重排BM15 删除有序链表中重复的元素-IBM16 删除有序链表中重复的元素-IIJZ35 复杂链表的复制 二分法BM17 二分查找-IBM18 二维数组中的查找BM19…

Git中smart Checkout与force checkout

Git中smart Checkout与force checkout 使用git进行代码版本管理,当我们切换分支有时会遇到这样的问题: 这是因为在当前分支修改了代码,但是没有commit,所以在切换到其他分支的时候会弹出这个窗口, 提示你选force checkout或者smart checko…

Windows11 安装 nvm node版本管理工具

在 Windows 11 上安装并配置 NVM 与 Node.js 版本管理工具 引言: Node.js 是一款强大的开发工具,而版本管理工具 NVM 则可以帮助我们在不同的项目中灵活地切换和管理 Node.js 版本。本篇博客将为大家介绍如何在 Windows 11 操作系统上安装 NVM&#xff…

手机无人直播软件有哪些,又有哪些优势?

如今,随着智能手机的普及和移动互联网的发展,手机无人直播成为了一个炙手可热的领域。手机无人直播软件为用户提供了便捷、灵活的直播方式,让更多商家人能够实现自己的直播带货的梦想。接下来,我们将探讨手机无人直播软件有哪些&a…

【随笔】如何使用阿里云的OSS保存基础的服务器环境

使用阿里云OSS创建一个存储仓库:bucket 在Linux上下载并安装阿里云的ossutil工具 // 命令行,是linux环境 3. 安装ossutil。sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash 说明:安装过程中,需要使用解压工具…

AP9234 9W升压恒流型 DCDC多串LED恒流驱动 2串3串 LED灯串

描述 AP9234是一款由基准电压源、振荡电路、误差放大电路、相位补偿电路、电流限制电路等构成的CMOS升压型DC/DC LED驱动。由于内置了低导通电阻的增强型N沟道功率MOSFET,因此适用于需要高效率、高输出电流的应用电路。另外,可通过在VSENSE端子连接电流…

使用Rust开发命令行工具

生成二进制文件,将其扔到环境变量的path下即可~ 用rust打造实时天气命令行工具[1] 找到合适的API 使用该api[2] 如请求 api.openweathermap.org/data/2.5/weather?qBeijing&appidyour_key: { "coord": { "lon": 116.3972, "lat&quo…

网络直播源码UDP协议搭建:为平台注入一份力量

网络直播源码中的UDP协议的定义: UDP协议又名用户数据报协议,是一种轻量级、无连接的协议。在网络直播源码平台中,UDP协议有着高速传输与实时性的能力,尤其是在网络直播源码实时性要求较高的场景,UDP协议的应用有着重要…

在项目中快速搭建机器学习的流程

在软件开发领域,机器学习框架发挥着关键作用,为开发人员提供强大的人工智能工具、库和算法,以有效地利用机器学习的潜力。从本质上讲,机器学习使计算机能够从数据中学习并做出预测或决策,而无需明确编程。 机器学习框…

CAN总线学习——物理层、数据链路层、CANopen协议

1、CAN总线介绍 1.1、CAN总线描述 (1)CAN总线支持多节点通信,但是节点不分区主从,也就是不存在一个节点来负责维护总线的通信;这点可以和I2C总线对对比,I2C是一主多从模式; (2)是差分、异步、串行总线,采用…