您的位置:首页 >环保 >

数据格式转化,PyTorch就是救星!

时间:2021-06-10 12:16:55 来源:

介绍

Pytorch是一个深度学习框架,广泛用于图像分类、分割、目标识别等各种任务。在这种情况下,我们必须处理各种类型的数据。很可能在大多数情况下,数据可能不是我们所需要的格式。PyTorch转换就是救星。

torchvision.transforms模块提供了可以使用的各种图像转换。我们使用变换对数据进行一些操作,使其适合于训练torchvision模块,PyTorch为常见的图像变换提供变换有关的函数。这些变换可以使用Compose链接在一起。

让我们在本文中看看其中的几个!准备好了吗?

1. ToTensor

这是一个非常常用的转换。在PyTorch中,我们主要处理张量形式的数据。如果输入数据是NumPy数组或PIL图像的形式,我们可以使用ToTensor将其转换为张量格式。

最后一个张量的形式是(C * H * W)。同时,还执行从0–255到0–1的范围内的缩放操作。

让我们用一个例子来更好地理解它。在这个博客中,我将使用Ragnar(我最喜欢的虚构角色)的图像来执行转换。

2. Normalize

此操作将获取张量图像,并使用平均值和标准差对其进行归一化。它有3个参数:mean, std, inplace。我们需要为3个通道提供一系列平均值,作为参数“mean”,“std”类似。如果将“inplace”设为True,则将计算得到的值覆盖之前的值。

torchvision.transforms.Normalize([meanOfChannel1, meanOfChannel2, meanOfChannel3], [stdOfChannel1, stdOfChannel2, stdOfChannel3])#Example:transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))

3. CenterCrop

这将在中心裁剪给定的张量图像。你可以以(高度、宽度)的形式向transforms.CenterCrop()提供要裁剪的大小作为输入。让我们在图像上实现这个并进行检查。

transform = transforms.Compose([transforms.ToTensor(),transforms.CenterCrop((200,100))])tensor_img = transform(image)tensor_img.shapeOutput: torch.Size([3, 200, 100])

如果只提供一个尺寸标注而不是两个尺寸标注,会发生什么情况?

它将假设它是一个正方形,并且将生成一个(size, size))的裁剪。

如果给定的尺寸比原来的尺寸大呢?

沿着这些边,图像将填充0!

4. RandomHorizontalFlip

此变换将以给定的概率水平(随机)翻转图像。你可以通过参数“p”来设置这个概率。p的默认值为0.5。

检查我下面的例子来理解。

transform = transforms.Compose([transforms.RandomHorizontalFlip(p=0.9)])tensor_img = transform(image)tensor_img

查看原始图像和翻转的图像!


郑重声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。
猜你喜欢