torchvision找不到transforms

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了torchvision找不到transforms相关的知识,希望对你有一定的参考价值。

参考技术A 方法如下:用PIL Image打开一个图片,然后转变为tensor类型进行输出。tensor数据类型包含了神经网络所需要的一些参数

控制台运行以上代码可以看到:

右侧tensor_img是tensor数据类型,其中data是图片的具体数据,grad是梯度,grad_fn是梯度的方法,等等,都是反向传播所需要的一些参数 ,在神经网络中一般都会变为tensor类型进训练。
参考技术B 您好,torchvision是一个Python库,它提供了用于计算机视觉的常用工具和数据集。它的transforms模块提供了一系列用于图像和视频数据处理的函数,可以帮助您对数据进行转换,例如缩放,裁剪,旋转,翻转,色彩调整等。您可以使用torchvision.transforms模块来转换图像和视频数据,以便更好地进行计算机视觉应用。 参考技术C 您好,图像处理软件包,它提供了一系列的工具和模块,可以帮助开发者更轻松地处理图像数据。其中,transforms模块提供了一系列的图像变换,可以帮助开发者对图像进行缩放、裁剪、旋转等操作,从而更好地处理图像数据。此外,transforms模块还可以帮助开发者将图像数据转换为PyTorch可以处理的格式,从而更好地进行图像处理。

PyTorch官方中文文档:torchvision.transforms

 
 

pytorch torchvision transform

对PIL.Image进行变换

class torchvision.transforms.Compose(transforms)

将多个transform组合起来使用。

transforms: 由transform构成的列表.
例子:

transforms.Compose([
     transforms.CenterCrop(10),
     transforms.ToTensor(),
 ])
 ```


### class torchvision.transforms.Scale(size, interpolation=2)

将输入的`PIL.Image`重新改变大小成给定的`size`,`size`是最小边的边长。举个例子,如果原图的`height>width`,那么改变大小后的图片大小是`(size*height/width, size)`。
**用例:**
```python
from torchvision import transforms
from PIL import Image
crop = transforms.Scale(12)
img = Image.open(‘test.jpg‘)

print(type(img))
print(img.size)

croped_img=crop(img)
print(type(croped_img))
print(croped_img.size)
<class ‘PIL.PngImagePlugin.PngImageFile‘>
(10, 10)
<class ‘PIL.Image.Image‘>
(12, 12)

class torchvision.transforms.CenterCrop(size)

将给定的PIL.Image进行中心切割,得到给定的sizesize可以是tuple(target_height, target_width)size也可以是一个Integer,在这种情况下,切出来的图片的形状是正方形。

class torchvision.transforms.RandomCrop(size, padding=0)

切割中心点的位置随机选取。size可以是tuple也可以是Integer

class torchvision.transforms.RandomHorizontalFlip

随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。

class torchvision.transforms.RandomSizedCrop(size, interpolation=2)

先将给定的PIL.Image随机切,然后再resize成给定的size大小。

class torchvision.transforms.Pad(padding, fill=0)

将给定的PIL.Image的所有边用给定的pad value填充。
padding:要填充多少像素
fill:用什么值填充
例子:

from torchvision import transforms
from PIL import Image
padding_img = transforms.Pad(padding=10, fill=0)
img = Image.open(‘test.jpg‘)

print(type(img))
print(img.size)

padded_img=padding(img)
print(type(padded_img))
print(padded_img.size)
<class ‘PIL.PngImagePlugin.PngImageFile‘>
(10, 10)
<class ‘PIL.Image.Image‘>
(30, 30) #由于上下左右都要填充10个像素,所以填充后的size是(30,30)

对Tensor进行变换

class torchvision.transforms.Normalize(mean, std)

给定均值:(R,G,B) 方差:(R,G,B),将会把Tensor正则化。即:Normalized_image=(image-mean)/std

Conversion Transforms

class torchvision.transforms.ToTensor

把一个取值范围是[0,255]PIL.Image或者shape(H,W,C)numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]torch.FloadTensor

data = np.random.randint(0, 255, size=300)
img = data.reshape(10,10,3)
print(img.shape)
img_tensor = transforms.ToTensor()(img) # 转换成tensor
print(img_tensor)

class torchvision.transforms.ToPILImage

shape(C,H,W)Tensorshape(H,W,C)numpy.ndarray转换成PIL.Image,值不变。

通用变换

class torchvision.transforms.Lambda(lambd)

使用lambd作为转换器。

艾伯特(http://www.aibbt.com/)国内第一家人工智能门户

以上是关于torchvision找不到transforms的主要内容,如果未能解决你的问题,请参考以下文章

import torch错误解决

conda包手动下载 本地安装

PyTorch 模型未收敛

资源分享jetson xavier nx(aarch64)平台上的pytorch1.8.0+torchvision0.9.0(python=3.6)

torchvision

torchvision.transforms.Compose()详解Pytorch入门手册