本文主要是介绍pytorh基础知识和函数的学习:torchvision.transforms(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
transforms是 PyTorch 的 torchvision 库中用于图像处理的一个模块。它提供了一组工具,用于在图像数据集上进行常见的预处理和数据增强操作,以便更好地训练深度学习模型。以下是一些常用的torchvision.transforms转换:
基础图像转换:
transforms.ToTensor(): 将PIL图像或NumPy数组转换为PyTorch的张量,并将像素值范围从[0, 255]缩放到[0, 1]。
transforms.ToPILImage(): 将PyTorch张量转换为PIL图像对象。
transforms.Normalize(mean, std): 对输入数据进行归一化处理,即将每个像素值减去均值(mean)然后除以标准差(std)。这有助于模型的收敛和性能提升。
transforms.Grayscale(num_output_channels=1): 将输入数据转换为灰度图像。
图像增强:
transforms.RandomHorizontalFlip(p=0.5): 随机水平翻转图像,p 是翻转的概率。
transforms.RandomVerticalFlip(p=0.5): 随机垂直翻转图像。
transforms.RandomRotation(degrees): 随机旋转图像,degrees 表示旋转的角度范围。
transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0): 随机改变图像的亮度、对比度、饱和度和色调。
几何变换:
transforms.Resize(size): 调整图像的大小,size 可以是一个整数(统一缩放到相同的尺寸)或一个 (height, width) 元组。
transforms.CenterCrop(size): 从图像中心裁剪出一个大小为 size 的区域。
transforms.RandomCrop(size): 从图像中随机裁剪出一个大小为 size 的区域。
transforms.Pad(padding): 对图像进行填充,padding 可以是一个整数(统一填充)或一个 (left, top, right, bottom) 元组。
图像转换为不同的格式:
transforms.Lambda(lambda x: ...): 允许用户自定义转换操作,通过传入一个函数来实现。
组合多个转换:
transforms.Compose(transforms_list): 将多个转换操作组合成一个转换操作,其中 transforms_list 是一个转换操作的列表,图像将按顺序应用这些操作。
demo:
from PIL import Image
from torchvision import transformsimage = Image.open('demo.png') # 读取图像文件transforms = transforms.Compose([transforms.ToTensor(), # 转换为张量transforms.Grayscale(1), # 转换为灰度图transforms.ToPILImage() # 转换为图像])show_image = transforms(image) # 应用转换,将张量转换为图像
show_image.show() # 显示图像
这篇关于pytorh基础知识和函数的学习:torchvision.transforms()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!