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

跟着小土堆学习pytorch(二)——TensorBoard和Transform

文章目录

  • 一、TensorBoard
    • 1.1 add_scalar()
      • 1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument 'including_default_value_fields'
      • 1.1.2 图像重叠
      • 1.1.3 代码展示
    • 1.2 add_image()
      • 1.2.1 代码
  • 二、transform
    • 2.1 介绍——对图片进行一些变化
    • 2.2 补:查看py文件下(如,transform.py)下的结构
    • 2.3 查找快捷键
    • 2.4 常用的类
    • 2.5 tensor
    • 2.6 __call__()
    • 2.7 cv2库
    • 2.8 代码与效果

一、TensorBoard

主要是用来绘制train/val loss图像(图像现实)
比如,在训练过程的时候看看loss的图像情况,loss就是描述实验数据和真实数据的差距

1.1 add_scalar()

1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument ‘including_default_value_fields’

这个是由于,tensorboard的版本过高了
pip install tensorboard==2.12.0弄个低版本就行
嗯,数据就生成了
在这里插入图片描述

1.1.2 图像重叠

如果重叠了,就是同一个标签下面,会造成图像混合在一起,进行拟合,很乱,需要删除logs下的event事件

1.1.3 代码展示

from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("D:\\pycharm_project\\try3\\math\\logs")# writer.add_image()for i in range(100):writer.add_scalar("y=x",i,i)writer.close()

1.2 add_image()

在这里插入图片描述
对于img_tensor这个参数,图片格式必须torch.Tensor, numpy.ndarray, or string/blobname
在这里插入图片描述
能看清每一步的数据

1.2.1 代码

from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as npwriter = SummaryWriter("D:\\pycharm_project\\try3\\math\\logs")
img_path = "D:\\pycharm_project\\try3\\dataset\\train\\bees\\21399619_3e61e5bb6f.jpg"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)print(type(img_array))
print(img_array.shape)writer.add_image("train",img_array,2,dataformats='HWC')for i in range(100):writer.add_scalar("y=x",i,i)writer.close()

二、transform

2.1 介绍——对图片进行一些变化

对图片进行一些变化
在torchvision库中,"transform"指的是一系列用于图像预处理和数据增强的操作。这些操作可以改变图像的大小、颜色、对比度等属性,或者对图像进行裁剪、旋转等。

Resize:调整图像的大小。它可以接受一个整数或者一个尺寸序列(高度,宽度)。如果提供整数,图像的较小边将被调整为此数值,同时保持原始宽高比。

CenterCrop:将图像裁剪为给定的尺寸,裁剪操作在图像的中心进行。

RandomCrop:随机裁剪图像的一部分。可以指定裁剪区域的尺寸,以及是否在必要时对图像进行填充。

RandomHorizontalFlip和RandomVerticalFlip:随机水平或垂直翻转图像。这些变换以一定的概率(默认为0.5)应用。

ColorJitter:随机改变图像的亮度、对比度、饱和度和色调。

Grayscale:以一定的概率将图像转换为灰度图像。

RandomRotation:随机旋转图像一个角度,角度范围可以指定。

Normalize:对图像进行标准化处理,即减去均值并除以标准差。这通常在数据预处理的最后阶段进行,以确保模型输入的一致性。

ToTensor:将PIL图像或numpy数组转换为torch.Tensor对象。转换后的张量形状为(C, H, W),其中C是通道数,H是高度,W是宽度。

Compose:将多个变换组合成一个。这是最常用的变换之一,因为它允许你将一系列的预处理步骤串联起来,一次性应用到图像上。

2.2 补:查看py文件下(如,transform.py)下的结构

,这些库,里面的类,很多,想要查看可以组合键Alt+7
在这里插入图片描述
下拉之后,双击,可以定位到目标函数

2.3 查找快捷键

setting—>keymap—>structure

2.4 常用的类

compose—几种变换进行组合一起
totensor—变成tensor格式
ToPILImage—变成PILimage格式
Normalize—正则化
CenterCrop—中心裁剪
resize—裁剪/变换

2.5 tensor

  1. transform怎么用
  2. tensor的数据类型

totensor的__call__()
在这里插入图片描述
输入图片,返回tensor

tensor_trans = transforms.ToTensor() # 实例化
tensor_img = tensor_trans(img)       # 调用

tensor数据类型,包装了神经网络所需要的一些理论参数

2.6 call()

call方法可以使对象具有当作函数的功能,当你调用对象,就会自动调用call方法

2.7 cv2库

使用cv2.imread,返回出来的就是ndarry,也能通过totensor转成tensor

Alt+Enter—> 自动导入库
ctrl + p —> 现实需要输入的参数

2.8 代码与效果

from PIL import Image
from torch.utils.tensorboard import SummaryWriterfrom torchvision import transformsimg_path = "D:\\pycharm_project\\try3\\dataset\\train\\ants\\0013035.jpg"
img = Image.open(img_path)
writer_try = SummaryWriter("D:\\pycharm_project\\try3\\math\\logs")tensor_trans = transforms.ToTensor() # 实例化
tensor_img = tensor_trans(img)       # 调用print(tensor_img)writer_try.add_image("Tensor_img", tensor_img)
writer_try.close()

tensorboard --logdir=D:\pycharm_project\try3\math\logs以后logs文件,我都用绝对地址,不然总是出问题
在这里插入图片描述

相关文章:

跟着小土堆学习pytorch(二)——TensorBoard和Transform

文章目录 一、TensorBoard1.1 add_scalar()1.1,1 报错:TypeError: MessageToJson() got an unexpected keyword argument including_default_value_fields1.1.2 图像重叠1.1.3 代码展示 1.2 add_image()1.2.1 代码 二、transform2.1 介绍——对图片进行一些变化2.2 …...

自由学习记录(10)

Sprite Packer ~Mode & 图集 packer Project Setting经常是金屋藏娇 创建的项目如果不是2d项目,则默认disable打包 编辑模式就是你没点运行看游戏效果,在狼狈敲码创对象写逻辑的那个状态, 运行模式从点了|>之后,就一直…...

Redis提供了专门的命令来实现自增操作

Redis中的自增操作并不是直接通过CAS(Compare and Set)操作实现的。Redis提供了专门的命令来实现自增操作,这些命令能够确保操作的原子性,而不需要显式地使用CAS机制。 Redis中的自增操作 Redis中的自增操作主要依赖于以下几个命…...

uniapp修改input中placeholder样式

Uniapp官方提供了两种修改的属性方法&#xff0c;但经过测试&#xff0c;只有 placeholder-class 属性能够生效 <input placeholder"请输入手机验证码" placeholder-class"input-placeholder"/><!-- css --> <style lang"scss" s…...

GenerativeU:生成式开放目标检测

论文&#xff1a;https://arxiv.org/abs/2403.10191 代码&#xff1a;https://github.com/FoundationVision/GenerateU 感想 目标检测任务已经逐渐从闭集场景专项开集场景&#xff0c;在LLM加持下&#xff0c;速读越来越快。该方法仍然依赖于预先定义的类别&#xff0c;这意味着…...

element plus e-table表格中使用多选,当翻页时已选中的数据丢失

摘要&#xff1a; 点击第一页选中两个&#xff0c;再选择第二页&#xff0c;选中&#xff0c;回到第一页&#xff0c;之前选中的要保留&#xff01; element ui table 解决办法&#xff1a; :row-key“getRowKeys” &#xff08;写在el-table中&#xff09; methods中声明 ge…...

CentOS 7 网络连接显示“以太网(ens33)不可用”

1.创建linux虚拟机&#xff0c;配置网络和主机名显示" 以太网&#xff08;ens33&#xff0c;被拔出&#xff09;" 2.桌面右键此电脑&#xff0c;管理&#xff0c;找到“服务和应用程序”&#xff0c;点击“服务”&#xff0c;找到下图两个服务&#xff0c;点击圈起来…...

qt QNetworkProxy详解

一、概述 QNetworkProxy通过设置代理类型、主机、端口和认证信息&#xff0c;可以使应用程序的所有网络请求通过代理服务器进行。它支持为Qt网络类&#xff08;如QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager等&#xff09;配置网络层代理支持…...

推荐IDE中实用AI编程插件,目前无限次使用

插件介绍 一款字节跳动推出的“基于豆包大模型的智能开发工具” 以vscode介绍【pycharm等都可以啊】&#xff0c;这个插件提供智能补全、智能预测、智能问答等能力&#xff0c;节省开发时间 直接在IDE中使用&#xff0c;就不用在网页中来回切换了 感觉还可以&#xff0c;响应速…...

【华为HCIP实战课程十五】OSPF的环路避免及虚链路,网络工程师

一、避免域间路由环路 1、区域内部的防环:区域内同步了LSA,SPF就决定了区域内部没有环路 2、区间的防环机制:非正常的ABR不更新3类LSA 为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则 1)、OSPF划分了骨干区域和非骨干区域,所有非骨干区域均直接…...

【编程语言】正则表达式:POSIX 与 PCRE 的全面比较及应用

目录 正则表达式&#xff1a;POSIX 与 PCRE 的全面比较及应用1. 正则表达式的基本概念1.1 基本元素1.2 正则表达式的历史 2. POSIX 正则表达式2.1 POSIX 正则表达式的语法2.1.1 基本正则表达式 (BRE)2.1.2 扩展正则表达式 (ERE) 2.2 POSIX 正则表达式的使用场景2.3 使用 POSIX …...

Spark Streaming 数据流处理

一、创建Spark Streaming 环境 二、读取数据&#xff08;监听端口&#xff09; 三、任务处理 四、启动程序 我这里写的是简单的单词数量统计 import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream} import org.apache.spark.{SparkConf, SparkConte…...

高效规划神器 markmap:一键将 Markdown 变思维导图!

❤️ 如果你也关注大模型与 AI 的发展现状&#xff0c;且对大模型应用开发非常感兴趣&#xff0c;我会快速跟你分享最新的感兴趣的 AI 应用和热点信息&#xff0c;也会不定期分享自己的想法和开源实例&#xff0c;欢迎关注我哦&#xff01; 微信公众号&#xff5c;搜一搜&…...

微服务基础架构(图)

微服务基础架构是一种现代化的软件架构模式&#xff0c;旨在将大型复杂的应用程序拆分为多个小型、独立的服务。每个微服务专注于特定的业务功能&#xff0c;可独立开发、部署和扩展。 在微服务基础架构中&#xff0c;通常会使用轻量级的通信机制&#xff0c;如 RESTful API 或…...

中电金信:大模型时代 金融机构企业架构转型如何更智能化?

随着人工智能技术的不断进步&#xff0c;AI大模型在金融行业已经广泛应用&#xff0c;推动金融机构实现更高效、智能化的服务&#xff0c;同时也为金融科技领域的发展带来新的挑战。中电金信基于业务建模的企业架构转型解决方案也顺势而动&#xff0c;关注大模型在具体场景上的…...

基于CRNN模型的多位数字序列识别的应用【代码+数据集+python环境+GUI系统】

基于CRNN模型的多位数字序列识别的应用【代码数据集python环境GUI系统】 基于CRNN模型的多位数字序列识别的应用【代码数据集python环境GUI系统】 背景意义 多位手写数字识别&#xff0c;即计算机从纸张文档、照片、触摸屏等来源接收并解释可理解的手写数字输入的能力。 随着…...

windows中命令行批处理脚本学习

目录 一 基础知识二 常见命令1. 输出 echo2. 注释 rem .... %...% :: goto if (10) ()3. 变量 set4. 获取参数 %数字 %*5. 退出 exit6. 复制 copy7.读取输出文件内容 type8. 帮助 命令xxx /?9.等待当前命令运行结束后,才执行下一条命令 call10. 修改字体编码 chcp11. 特殊变量…...

版本工具报错:Error Unity Version Control

NotConfiguredClientException: Unity VCS client is not correctly configured for the current user:Client config file....

ECharts饼图-饼图标签对齐,附视频讲解与代码下载

一、图表效果预览 引言&#xff1a; 在数据可视化的世界里&#xff0c;ECharts凭借其丰富的图表类型和强大的配置能力&#xff0c;成为了众多开发者的首选。今天&#xff0c;我将带大家一起实现一个饼图图表&#xff0c;通过该图表我们可以直观地展示和分析数据。此外&#…...

Python实现基于WebSocket的stomp协议调试助手工具分享

stomp协议很简单&#xff0c;但是搜遍网络竟没找到一款合适的客户端工具。大多数提供的都是客户端库的使用。可能是太简单了吧&#xff01;可是即便这样&#xff0c;假如有一可视化的工具&#xff0c;将方便的对stomp协议进行抓包调试。网上类似MQTT的客户端工具有很多&#xf…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...