跟着小土堆学习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
- transform怎么用
- 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官方提供了两种修改的属性方法,但经过测试,只有 placeholder-class 属性能够生效 <input placeholder"请输入手机验证码" placeholder-class"input-placeholder"/><!-- css --> <style lang"scss" s…...

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

element plus e-table表格中使用多选,当翻页时已选中的数据丢失
摘要: 点击第一页选中两个,再选择第二页,选中,回到第一页,之前选中的要保留! element ui table 解决办法: :row-key“getRowKeys” (写在el-table中) methods中声明 ge…...

CentOS 7 网络连接显示“以太网(ens33)不可用”
1.创建linux虚拟机,配置网络和主机名显示" 以太网(ens33,被拔出)" 2.桌面右键此电脑,管理,找到“服务和应用程序”,点击“服务”,找到下图两个服务,点击圈起来…...

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

推荐IDE中实用AI编程插件,目前无限次使用
插件介绍 一款字节跳动推出的“基于豆包大模型的智能开发工具” 以vscode介绍【pycharm等都可以啊】,这个插件提供智能补全、智能预测、智能问答等能力,节省开发时间 直接在IDE中使用,就不用在网页中来回切换了 感觉还可以,响应速…...
【华为HCIP实战课程十五】OSPF的环路避免及虚链路,网络工程师
一、避免域间路由环路 1、区域内部的防环:区域内同步了LSA,SPF就决定了区域内部没有环路 2、区间的防环机制:非正常的ABR不更新3类LSA 为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则 1)、OSPF划分了骨干区域和非骨干区域,所有非骨干区域均直接…...

【编程语言】正则表达式:POSIX 与 PCRE 的全面比较及应用
目录 正则表达式: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 环境 二、读取数据(监听端口) 三、任务处理 四、启动程序 我这里写的是简单的单词数量统计 import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream} import org.apache.spark.{SparkConf, SparkConte…...

高效规划神器 markmap:一键将 Markdown 变思维导图!
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 微信公众号|搜一搜&…...

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

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

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

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饼图-饼图标签对齐,附视频讲解与代码下载
一、图表效果预览 引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我将带大家一起实现一个饼图图表,通过该图表我们可以直观地展示和分析数据。此外&#…...

Python实现基于WebSocket的stomp协议调试助手工具分享
stomp协议很简单,但是搜遍网络竟没找到一款合适的客户端工具。大多数提供的都是客户端库的使用。可能是太简单了吧!可是即便这样,假如有一可视化的工具,将方便的对stomp协议进行抓包调试。网上类似MQTT的客户端工具有很多…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...