torchvison.transforms.functional.affine()/resized_crop()

2023-10-31 01:40

本文主要是介绍torchvison.transforms.functional.affine()/resized_crop(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要使用这个函数,往往需要配套使用函数 transforms.RandomAffine.get_params,这个函数的作用是返回torchvison.transforms.functional.affine()所需要的变换参数。

transforms.RandomAffine.get_params的参数包括 degrees=(-10, 10), translate=(0.1, 0.1), scale_ranges=(0.9, 1.1), shears=(-5, 5), img_size=imgs[0][0].size,等等。可以看到这些参数都是比例,也就是对应的变换程度,比如translate=(0.1, 0.1),也就是说变换成都是0.1,scale_ranges=(0.9, 1.1)则表示图像的变换范围再0.9到1.1。

好了,问题来啦,上面的变换参数对于我们人来说很好理解,但是torchvison.transforms.functional.affine()计算的时候还是要对像素来计算的,所以,比如这里的scale_ranges=(0.9, 1.1)意思是在原来图像的基础上转变0.9到1.1的程度,但具体到底应该变换多少像素呢。所以transforms.RandomAffine.get_params这个函数的作用就是把我们人类好理解的参数转化为torchvison.transforms.functional.affine()可以实际操作的像素值。这也是参数img_size=imgs[0][0].size的作用,让transforms.RandomAffine.get_params在图像的实际尺寸上得到实际转化需要的像素值。

实例:

同样的道理也可以应用于torchvison.transforms.functional.resized_crop(),它也可以先利用transforms.RandomResizedCrop.get_params(img, scale=(1, 1), ratio=(0.9, 1.1))来得到一组参数,然后再使用torchvison.transforms.functional.resized_crop()来对目标进行变换。

但其实上面来个函数transforms.RandomResizedCrop和transforms.RandomAffine()本身自己内部就是先调用的对应的get_params()函数,再调用对应的functional函数来做变换,这里单独使用是为了对不同图片做相同变换。因为本身transforms.RandomResizedCrop和transforms.RandomAffine()是随机变换,不能保证对不同图片进行相同变换。

 

这篇关于torchvison.transforms.functional.affine()/resized_crop()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

pytorch torch.nn.functional.one_hot函数介绍

torch.nn.functional.one_hot 是 PyTorch 中用于生成独热编码(one-hot encoding)张量的函数。独热编码是一种常用的编码方式,特别适用于分类任务或对离散的类别标签进行处理。该函数将整数张量的每个元素转换为一个独热向量。 函数签名 torch.nn.functional.one_hot(tensor, num_classes=-1) 参数 t

torch.nn 与 torch.nn.functional的区别?

区别 PyTorch中torch.nn与torch.nn.functional的区别是:1.继承方式不同;2.可训练参数不同;3.实现方式不同;4.调用方式不同。 1.继承方式不同 torch.nn 中的模块大多数是通过继承torch.nn.Module 类来实现的,这些模块都是Python 类,需要进行实例化才能使用。而torch.nn.functional 中的函数是直接调用的,无需

torchvision.transforms.ToPILImage()使用

grid_img = torchvision.transforms.ToPILImage()(grid_img) torchvision.transforms.ToPILImage() 是一个类,后面的空括号 () 表示实例化这个类。 详细解释: 1. torchvision.transforms.ToPILImage(): 这是 torchvision.transforms 中的一个类

UF_VEC3_affine_comb函数的数学原理

double* Point1=(double *)malloc(3*sizeof(double));  double dir_r=sqrt(Dir[0]*Dir[0]+Dir[1]*Dir[1]+Dir[2]*Dir[2]);  double h=80/dir_r;  UF_VEC3_affine_comb(Point ,h,Dir,Point1);

Transforms的常见用法

文章目录 一、封装函数与普通函数的用法区别二、Image.open()打开图片的格式三、ToTensor打开图片格式四、ToTensor使用五、Normalize归一化使用六、Resize的使用七、Compose - Resize 使用八、RandomCrop() 随机裁剪用法 一、封装函数与普通函数的用法区别 class Person:def __call__(self, n

PyTorch Demo-4 : 数据变换Transforms

Transforms的函数有很多,每次都是直接copy已有的代码,但是不知道具体是什么样子,在这里记录一下 Transforms常用方法的具体说明参考链接1,链接2,或者官方文档。 原始图像采用图像处理经典的Lena: Python代码 from PIL import Imagefrom torchvision import transforms as tfimport ma

初步掌握Transforms的基本使用

在深度学习中,Transforms是图片处理最强大的工具,只要是进行图片操作,就离不开Transforms。 在应用中多把Transforms看作是图片处理的工具箱,内有多种工具,如ToTensor、Normalize等,它们可以对图像进行操作。除此之外,在此工具的基础上,我们也可以构建自己的图像处理工具。 接下来介绍Transforms中几个常用的工具 (一)Compose() 在Tra

[pytorch] --- pytorch基础之transforms

1 pytorch中transforms介绍 transforms是torchvision中的一个模块(torchvision 是Pytorch的计算机视觉工具包),该模块定义了很多用于图像预处理的类,列举如下: 数据中心化数据标准化缩放裁剪旋转翻转填充噪声添加灰度变换线性变换仿射变换亮度、饱和度以及对比度变换等。 通过实例化该工具类,可以方便地对图像进行各种变换操作。 tran

PyTorch库学习之torch.nn.functional.interpolate(函数)

PyTorch库学习之torch.nn.functional.interpolate(函数) 一、简介 torch.nn.functional.interpolate 是 PyTorch 中用于对张量进行上采样或下采样的函数。它支持多种插值方法,例如双线性插值、最近邻插值等,广泛用于图像处理、特征图缩放等场景。 二、语法和参数 语法 torch.nn.functional.inte

【Pytorch】torch.nn.functional.normalize

目录 本质  官方参考 实例 本质  torch.nn.functional.normalize(input, p=2, dim=1, eps=1e-12, out=None) 本质上就是按照某个维度计算范数,p表示计算p范数(等于2就是2范数),dim计算范数的维度(这里为1,一般就是通道数那个维度) 官方参考 官方api:https://pytorch.org/doc