pytorch基础(七)------------transforms图像增强(一)

一、数据增强

概念:数据增强又称为数据增广,它是对训练集进行变换,是训练集更丰富,从而让模型更具有泛化能力
注意:以下方法都是作用在transforms.Compose([ ])中的。

二、transforms-----裁剪

1、transforms.CenterCrop(size)
功能:从图像中心裁剪图片
参数:
size:所需裁剪的图片尺寸
2、transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mode=‘constant’)
功能:从图片中随机裁剪出尺寸为size的图片
参数:
size:所需裁剪的图片尺寸
padding:设置填充大小,当为a时,上下左右均填充a个像素;当为(a,b)时,上下填充b个像素,左右填充a个像素;当为(a,b,c,d)时,左、上、右、下分别填充a、b、c、d个像素
pad_if_needed:若图像小于设定size,则填充
fill:padding_mode为constant时,设置填充的像素值
padding_mode:填充模式,共有四种
    1、constant:像素值由fill设定
    2、edge:像素值由图像边缘设定
    3、reflect:镜像填充,最后一个像素不镜像。eg:对[1,2,3,4]的边缘进行两个像素的填充 -> [3,2,1,2,3,4,3,2]
    4、symmetric:镜像填充,最后一个像素镜像。eg:[1,2,3,4] -> [2,1,1,2,3,4,4,3]
3、transforms.RandomResizeCrop(size, scale=(0…8, 1.0), ratio=(3/4, 4/3), interpolation)
功能:随机大小、长宽比裁剪图片
size:所需裁剪图像的尺寸
scale:随机裁剪面积比例,默认(0.08,1)
ratio:随机长宽比,默认(3/4, 4/3)
interpolation:插值方法
4、transforms.FiveCrop(size)
功能:在图像的上下左右以及中心裁剪出尺寸为size的5张图片
5、transforms.TenCrop(size, vertical_flip=False)
功能:对上面裁剪出的5张图片的基础上进行水平或者垂直镜像获得10张图片
参数:vertical_flip:是否垂直翻转

三、transforms-----翻转和旋转

1、transforms.RandomHorizontalFlip(p=0.5)
功能:依概率水平翻转图片
2、transforms.RandomVerticalFlip(p=0.5)
功能:依概率垂直翻转图片
参数:p:翻转概率(默认有百分之五十的概率被翻转)
3、transforms.RandomRotation(degrees, resample=False, expand=False, center=None)
功能:随机旋转图片
参数:
degress:旋转角度,当为a时,在(-a,a)之间选择旋转角度;当为(a,b)时,在(a,b)之间选择旋转角度
resample:重采样方法
expand:是否扩大图片,以保证原图信息,它只针对以中心作为旋转中心的情况
center:旋转点设置,默认中心旋转。例如:设置为(0,0)就是以左上角为旋转中心

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个用于深度学习的开源框架,它提供了一组工具和接口,使得我们可以轻松地进行模型训练、预测和部署。在PyTorch中,数据处理是深度学习应用的重要部分之一。 PyTorch中的数据处理主要涉及以下几个方面: 1.数据预处理:包括数据清洗、数据归一化、数据增强等操作,以提高模型的鲁棒性和泛化能力。 2.数据加载:PyTorch提供了多种数据加载方式,包括内置的数据集、自定义的数据集和数据加载器等,以便我们更好地管理和使用数据。 3.数据可视化:为了更好地理解数据和模型,PyTorch提供了多种数据可视化工具,如Matplotlib、TensorBoard等。 下面是一个简单的数据预处理示例,展示如何将图像进行归一化和数据增强: ```python import torch import torchvision.transforms as transforms from torchvision.datasets import CIFAR10 # 定义一个数据预处理管道 transform_train = transforms.Compose([ transforms.RandomCrop(32, padding=4), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.2023, 0.1994, 0.2010]) ]) # 加载CIFAR10数据集,进行预处理 trainset = CIFAR10(root='./data', train=True, download=True, transform=transform_train) trainloader = torch.utils.data.DataLoader(trainset, batch_size=128, shuffle=True, num_workers=2) ``` 在上面的例子中,我们首先定义了一个数据预处理管道,其中包括了对图像进行随机裁剪、水平翻转、归一化等操作。然后,我们使用PyTorch内置的CIFAR10数据集,并将其预处理后,使用DataLoader进行批量加载。这个过程可以帮助我们更好地管理和使用数据,同时提高模型的训练效率和泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值