Transforms(一)

news2024/10/8 23:03:16

一、概念

transforms就像是一个工具箱,里面装有很多类 (比如:totensor、resize等,可以在结构里查看到一个列表),类就是工具。

但是类不能直接使用,要创建其实例对象之后才能调用(tool=transforms.ToTensor())

而   实例对象名(参数) 这种形式可以自动调用call方法,进行工具的使用。

补充: call方法可以使对象具有当作函数的功能,当你调用对象实例并且参数满足条件时,就会自动调用call方法(说白了就是先实例化,满足条件后自动调用call方法)

注意到:init方法是 类名(参数),而call方法是 实例对象名(参数),都是能自动调用的

二、为什么需要Transforms?

tensor类型包装了一些训练神经网络所必须用到的参数(比如grad梯度)

三、如何使用Transforms?(以其中的ToTensor类为例)

ToTensor:把PIL.Image或numpy.array类型转成Tensor类型

实例化   +   实例名(参数:要转换的对象),即可调用

from PIL import Image
from torchvision import transforms

img_path=r"C:\Users\zzr\Desktop\Learning\dataset\hymenoptera_data\train\bees\16838648_415acd9e3f.jpg"
img=Image.open(img_path) #PIL.Image类型

tensor_trans=transforms.ToTensor() #生成ToTensor类的实例
img_tensor=tensor_trans(img) #把PIL.Image类型转换成torch.Tensor类型

print(img_tensor)


***区分:

使用Image.open('path’)生成的是 PIL.Image类型;

from PIL import Image

img_path="dataset/hymenoptera_data/train/bees/359928878_b3b418c728.jpg"
img_PIL=Image.open(img_path) #生成图像的PIL对象

使用cv2.imread('path')生成的是numpy.array类型

import cv2

img_path = r"C:\Users\zzr\Desktop\Learning\dataset\hymenoptera_data\train\bees\16838648_415acd9e3f.jpg"
img_array=cv2.imread(img_path) #numpy.array类型

(add_image要使用numpy.array或torch.Tensor类型) 

numpy.array(一个方法):PIL.Image——>numpy.array

img_array=np.array(img_PIL) #将PIL.Image类型转为numpy.array类型

ToTensor(一个类,仍需实例化):PIL.Image或numpy.array——>Tensor

tensor_trans=transforms.ToTensor() #生成ToTensor类的实例
img_tensor=tensor_trans(img_PIL) #把PIL.Image类型转换成torch.Tensor类型

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国庆假期互联网产品故障事件(神州租车、国航、公邮)盘点

一晃七天假期已经过去了,节后第一天大家股市都赚了盆满钵满吧,盘点一下国庆期间互联网产品故障吧。 一、神州租车: 10 月 2 日,有网友反馈神州租车今日出现服务问题,“App 小程序都崩了”。 对此,神州租车…

【自然语言处理】(2) --Word2Vec实现

文章目录 Word2Vec实现一、训练模型1. 数据预处理2. 构建训练数据3. 搭建word2vec网络(CBOW)4. 装配设备5. 构建训练模型6. 优化器7. 损失函数8. 迭代模型 二、测试模型1. 预测单词2. 生成词嵌入词典3. 保存训练后的词向量 总结 Word2Vec实现 Word2Vec …

『网络游戏』业务系统基类【08】

创建脚本:SystemRoot.cs 编写脚本:SystemRoot.cs 修改脚本:LoginSys.cs 修改脚本:WindowRoot.cs 运行项目 - 效果相同 本章结束

付费计量系统实体和接口(5)

13.7.2 Sub-classification of the Accounting functions 收费功能的子分级 The Accounting function maintains a current balance of all credit and charge transactions performed in the payment meter. These activities together constitute the Meter Accounting Proce…

小蒋聊技术——DevOps 是什么“玩意”?

时间:2024年 10月 08日 作者:小蒋聊技术 邮箱:wei_wei10163.com 微信:wei_wei10 音频:喜马拉雅 大家好,欢迎来到“小蒋聊技术”,我是小蒋!今天我们来聊聊一个时下特别火的概念—…

渐开线起始圆和基圆之间有约束关系吗?

最近看到了一个问题:“渐开线起始圆和基圆之间有约束关系吗?有起始圆要比基圆大某个固定数值这么一说吗?”,这期咱们就来说说这个话题: 如上图所示:一对圆柱齿轮副中,一个齿轮的渐开线起始圆是…

什么是数据编织

What Is Data Fabric? 【dataCamp】 What Is Data Fabric? Data fabric is a unified data architecture that connects disparate data sources, simplifying access and management while ensuring consistency and security across the entire data landscape. Data Fa…

cs61b学习 part3

如果你有许多list,这里将会是大量的时间,我指的是对于单向链表查找时间复杂度O(N)相对于数组O(1)的时间复杂度会慢一些 所以这究竟是顺序表的编写还是链表的改进? IntList public class IntList {public int first;public IntList rest;public IntLis…

webGL进阶(二)物体运动

效果&#xff1a; 模拟时钟效果。 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpo…

LSTM变种模型

一、GRU 1.概念 GRU&#xff08;门控循环单元&#xff0c;Gated Recurrent Unit&#xff09;是一种循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;旨在解决标准 RNN 在处理长期依赖关系时遇到的梯度消失问题。GRU 通过引入门控机制简化了 LSTM&#xff08;长短期…

Python爬虫使用实例-jsyks

目标地址&#xff1a; https://www.jsyks.com/kmy-mnks例如&#xff1a; urlhttps://www.jsyks.com/kmy-mnks # kmy-mnks 科目一-模拟考试 urlhttps://www.jsyks.com/kms-mnks # kms-mnks 科目四-模拟考试一、获取资源 先从本题分析里面得到解析答案【通过div.Exam ul li里面…

面向对象技术——设计模式

目录 层次结构 具体设计模式分类 创建型模式&#xff08;处理创建对象&#xff09; 结构型模式&#xff08;处理类和对象的组合&#xff09; 行为型模式&#xff08;描述类或者对象的交互行为&#xff09; 创建型设计模式 ​编辑 结构型设计模式 行为型设计模式​编辑 …

时序论文17|ICML24 SAMformer:华为新奇视角讨论Transformer时序预测时的收敛优化问题

论文标题&#xff1a;SAMformer: Unlocking the Potential of Transformers in Time Series Forecasting with Sharpness-Aware Minimization and Channel-Wise Attention 论文链接&#xff1a;https://arxiv.org/abs/2402.10198 代码链接&#xff1a;https://github.com/rom…

从零开始:在 VMware ESXi 环境中安装 Rocky Linux 的秘诀

哈喽大家好&#xff0c;欢迎来到虚拟化时代君&#xff08;XNHCYL&#xff09;。 “ 大家好&#xff0c;我是虚拟化时代君&#xff0c;一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…&#xff08;每天更新不间断&#xff0c;福利…

appium中的uiautomatorviewer显示的界面为横屏解决方法

uiautomatorviewer显示的界面为横屏解决方法 解决方法&#xff1a; 修改模拟器的分辨率&#xff0c;比如540:900就可解决了

MySQL基础教程(一):连接数据库和使用表

这个专栏用来讲解 MySQL 数据的基本语法和用法。本教程的目的是方便查询 MySQL 的用法&#xff0c;因此对于原理的讲解会偏少一些&#xff0c;但特点就是会有很多实验操作图。 本专栏使用的源材料是《MySQL必知必会》这本书的源代码。 文章目录 1. 连接 MySQL 数据库2. 创建数…

搭建个人博客--1、前端页面

采用bootstrap前端框架&#xff1a; Anchor - a free Bootstrap UI Kit综合使用bootstrap框架做一个Aotm Blog个人博客_基于bootstrap的博客-CSDN博客 做出模板base.html {% load static %} <!DOCTYPE html> <html langen> <head><meta charset"UT…

Facebook账单户和海外户该如何选择?

近期&#xff0c;有不少小伙伴来咨询广告投放账户的问题&#xff0c;很多人把账单户作为广告投放的选择&#xff0c;那么账单户和海外户哪个更适合你呢&#xff1f;本文将详细探讨这两种账户类型的差异&#xff0c;以及在不同情境下应如何选择&#xff0c;感兴趣的朋友就继续看…

遨游双卫星智能终端,赋能石油行业安全生产和信息化建设

石油&#xff0c;被誉为“工业的血液”&#xff0c;其影响力深远&#xff0c;石油勘探与开发活动往往在人迹罕至的偏远区域展开&#xff0c;如广袤的戈壁滩、浩瀚的海洋&#xff0c;这些区域普遍缺乏健全的公共电信网络基础设施。以往&#xff0c;油田野外作业团队主要依赖短波…

避雷!Google Adsense联盟营销七大投放误区

你是否在使用Google AdSense进行广告投放&#xff1f;你是否想进一步优化你的投放策略&#xff1f;那么这篇文章你不可错过啦&#xff01; Google AdSense为跨境商家提供了一个平台&#xff0c;我们可以通过展示相关广告来赚取收入。然而&#xff0c;即使是最有经验的商家也可…