数据格式转化,PyTorch就是救星!
介绍
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.shape
Output: 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
查看原始图像和翻转的图像!
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 2024 智能家居出海论坛
-
精彩回顾立即查看>> 【在线会议】多物理场仿真助跑新能源汽车
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论