torchvision.transforms

官方文档

torchvision.transforms是pytorch中的图像预处理包,包含了一些常用的图像变换,主要实现对数据集的预处理、数据增强、数据转换成tenser等一系列操作。一般用Compose把多个步骤整合到一起。例如:

transform=transforms.Compose([
                               transforms.Resize(opt.imageSize),
                               transforms.ToTensor(),
                               transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
                           ])

1.transforms.Resize()

将输入图片大小调成为指定大小。

2.transforms.ToTenser()

把PIL图像或[0, 255]范围内的numpy.ndarray(形状(H x W x C))转化成torch.FloatTensor,张量形状(C x H x W),范围在[0.0, 1.0]中

3.transforms.Normalize(mean,std)

用平均值和标准差标准化输入图片,给定n个通道的平均值(M1,…,Mn)和标准差(S1,…,Sn),这一变换会在输入图片的每一个通道上进行标准化,即input[channel] = (input[channel] - mean[channel]) / std[channel]。参数:

  • mean:序列,包含各通道的平均值
  • std:序列,包含各通道的标准差

transform中变换汇总

1、对PIL图片的变换

  • torchvision.transforms.CenterCrop(size):在中心处裁剪PIL图片
  • torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0):随机改变图片的亮度、对比度和饱和度。
  • torchvision.transforms.FiveCrop(size):从四角和中心裁剪PIL图片。
  • torchvision.transforms.Grayscale(num_output_channels=1):把图片转换为灰阶。
  • torchvision.transforms.Pad(padding, fill=0, padding_mode=‘constant’):对PIL图像的各条边缘进行扩展。
  • torchvision.transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0):保持像素的分布中心不变,对图像做随机仿射变换。
  • torchvision.transforms.RandomApply(transforms, p=0.5):对transforms中的各变换以指定的概率决定是否选择。
  • torchvision.transforms.RandomChoice(transforms)torchvision.transforms.RandomChoice(transforms):从列表中随机选择一种变换。
  • torchvision.transforms.RandomCrop(size, padding=0, pad_if_needed=False):对给出的PIL图片在随机位置处进行裁剪。
  • torchvision.transforms.RandomGrayscale(p=0.1):以概率p(默认0.1)将图片随机转化为灰阶图片。
  • torchvision.transforms.RandomHorizontalFlip(p=0.5):以给定的概率随机水平翻折PIL图片。
  • torchvision.transforms.RandomOrder(transforms):以随机的顺序对图片做变换。
  • torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2):以随机的形状和长宽比裁剪图片。
  • torchvision.transforms.RandomRotation(degrees, resample=False, expand=False, center=None):以指定的角度选装图片。
  • torchvision.transforms.RandomVerticalFlip(p=0.5):以给定的概率随机垂直翻折PIL图片。
  • torchvision.transforms.Resize(size, interpolation=2):将输入PIL图片调整大小到给定形状。
  • torchvision.transforms.TenCrop(size, vertical_flip=False):将PIL图片以四角和中心裁剪,同时加入翻折版本。(默认以水平的方式翻折)。

2、torch.*Tensor上的变换

  • torchvision.transforms.LinearTransformation(transformation_matrix):用一个预先准备好的变换方阵对图片张量做变换。torch.*Tensor会被transformation_matrix拉平,和变换矩阵做点积后调整到原始张量的形状。
  • torchvision.transforms.Normalize(mean, std):用平均值和标准差标准化输入图片。

3、格式变换

  • torchvision.transforms.ToPILImage(mode=None):把张量或ndarray转化为PIL图像。
  • torchvision.transforms.ToTensor:将PIL Image或numpy.ndarray转化成张量。

4、通用变换

  • torchvision.transforms.Lambda(lambd):将用户定义的函数用作变换。
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ImageNet是一个公开的大规模图像数据集,用于训练和评估图像分类算法。每年,ImageNet会举办一个挑战,吸引许多研究者参与,训练出能够分类ImageNet数据集中超过1000个类别的深度学习模型。 如果你想要下载ImageNet 2017数据集,首先需要在ImageNet网站上注册一个账号。注册成功之后,可以在网站上找到下载链接。 ImageNet 2017数据集总共包含150万张图像,分为训练集、验证集和测试集。其中,训练集包含120万张图像,验证集包含50000张图像,测试集包含50000张图像。每张图像都被分配了一个唯一的标签,表示该图像属于哪一类别。 由于ImageNet数据集较大,因此下载可能需要一段时间。你需要有足够的存储空间来存储数据集,通常需要几百G的空间。如果你使用的是深度学习框架(如TensorFlow、PyTorch等),可以使用相应的API来方便地加载和使用ImageNet数据集。 ### 回答2: Imagenet2017是一个非常庞大的图像数据集,包含了超过14百万个带有标签的图像,这些图像涵盖了超过2万个类别。下载Imagenet2017需要使用到高速网络,并且需要使用到一些工具,例如wget或者curl,因为Imagenet2017总体大小超过了一百多个GB,因此下载的时间可能会非常长。 首先,您需要进入Imagenet官网(http://www.image-net.org/),注册一个账号并且申请下载权限。 登录进入数据下载页面(http://www.image-net.org/download)。在这个页面上,您可以找到Imagenet2017数据集,点击下载链接。数据集被拆分为多个文件,每个文件的大小变化。因此,您需要在下载的时候选择合适的文件进行下载。可以使用wget命令,例如: wget -c http://www.image-net.org/challenges/LSVRC/2017/.../1.tar 其中“1.tar”可以更改为其他文件名。这个命令用于在中断下载的情况下恢复下载,防止因为网络不稳定导致重复下载。 下载完成后,您需要解压文件。可以使用unzip命令或者tar命令,例如: tar -xvf 1.tar 这个命令将tar文件解压到当前目录下的1文件夹中。 最后,您需要在PyTorch等框架中引用Imagenet2017数据集。可以使用torchvision.datasets.ImageNet加载数据集。例如: from torchvision.datasets import ImageNet train_data = ImageNet(root='/path/to/imagenet2017/', split='train', transform=transforms.ToTensor()) 这个命令用于将Imagenet2017数据集的训练集加载到内存中,并且将图像转换为tensor类型。 综上所述,下载Imagenet2017需要经过一系列的步骤,包括获取下载权限、选择合适的文件进行下载、解压文件以及在框架中引用数据集等步骤。 ### 回答3: ImageNet是一个广泛使用的基准数据集,用于衡量计算机视觉和机器学习算法的性能。ImageNet2017是 ImageNet数据集的最新版本。该数据集包含超过1400万张有标记图片,以及超过21000个类别。这使得它成为构建和训练基于深度学习的视觉识别算法的非常重要的工具。 为了从ImageNet2017中下载图片数据,首先需要到 ImageNet官方网站注册成为会员,获得一个开发者的许可证。之后,在ImageNet的下载页面上,可以选择下载不同的训练集和验证集数据,包括原始图像、预处理的数据和标签。下载过程需要使用wget命令,该命令能够快速有效地下载大文件和文件夹。同时,需要注意ImageNet数据集的文件比较大,对于下载速度和存储空间有较高的要求。 总之,ImageNet2017是用于开发和训练计算机视觉算法的重要基准数据集。下载ImageNet2017需要注册成为会员,然后下载具体的训练和验证数据。在下载过程中需要注意下载速度和存储空间的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值