[pytorch入门] 3. torchvision中的transforms

2024-02-08 17:20

本文主要是介绍[pytorch入门] 3. torchvision中的transforms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

torchvision中的transforms

是transforms.py工具箱,含有totensor、resize等工具
用于将特定格式的图片转换为想要的图片的结果,即用于图片变换

用法

在transforms中选择一个类创建对象,使用这个对象选择相应方法进行处理

能够选择的类

列表

["Compose","ToTensor",  # 转化为tensor类型"PILToTensor","ConvertImageDtype","ToPILImage", # tenor或ndarray转换为PIL image"Normalize",  # 归一化(用均值或标准差归一化tensor类型的image)"Resize","CenterCrop","Pad","Lambda","RandomApply","RandomChoice","RandomOrder","RandomCrop","RandomHorizontalFlip","RandomVerticalFlip","RandomResizedCrop","FiveCrop","TenCrop","LinearTransformation","ColorJitter","RandomRotation","RandomAffine","Grayscale","RandomGrayscale","RandomPerspective","RandomErasing","GaussianBlur","InterpolationMode","RandomInvert","RandomPosterize","RandomSolarize","RandomAdjustSharpness","RandomAutocontrast","RandomEqualize","ElasticTransform",
]

使用

  • NT
    • 关注输入和输出类型
    • 多看官方文档(可以进源码去看)
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
from torchvision import transformswriter = SummaryWriter('logs')
img = Image.open('./dataset2/train/ants_image/5650366_e22b7e1065.jpg')
print(img)# ToTensor
trans_totensor = transforms.ToTensor()
img_tensor = trans_totensor(img)       # 将PIL对象转换为tensor对象
writer.add_image("tensor_img",img_tensor)# Normalize 归一化:(输入-均值)/标准差
print(img_tensor[0][0][0])
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5]) # 要提供一个均值一个标准差
img_norm = trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("norm_img",img_norm)# Resize 调整尺寸:(h,w)
print(img.size)
trans_resize = transforms.Resize((512,512))# img PIL -> resize -> img_resize PIL
img_resize = trans_resize(img)  # 这里要传入的是PIL image类型# img_resize PIL -> totensor -> img_resize tensor
img_resize = trans_totensor(img_resize)
print(img_resize)# Compose  -  resize 第二种用法: 等比缩放
trans_resize_2 = transforms.Resize(512)# PIL -> PIL -> tensor
trans_compose = transforms.Compose([trans_resize_2, trans_totensor])  # 从右往左执行,后面参数的输入和前面参数的输出是一致的
img_resize_2 = trans_compose(img)
writer.add_image("Resize", img_resize_2, 1)# RandomCrop 随机裁剪
trans_random = transforms.RandomCrop(256) # 传一个int:代表正方形,传一个tuple:代表矩形
trans_compose_2 = transforms.Compose([trans_random, trans_totensor])
for i in range(10):img_crop = trans_compose_2(img)writer.add_image("RandomCrop", img_crop, i)writer.close()

进入调试,就会发现tensor_img中有一些反向传播的钩子:
在这里插入图片描述
以及使用的设备:
在这里插入图片描述
可以理解为tensor类型包含了神经网络训练所需要的一些参数

其他

类中的__call__方法:对象可以直接用括号时自动用的该方法(区别于普通方法需要用“.”调用)

class Person:def __call__(self, name):print("__call__:", name)def hello(self, name):print("hello",name)p = Person()
p("jerry")
p.hello('tom')

这篇关于[pytorch入门] 3. torchvision中的transforms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/691693

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题: