04-变换

发布时间:2026/10/27 23:17:53
04-变换 变换Transforms数据并不总是以训练机器学习算法所需的最终处理形式出现。我们使用**变换transforms**来对数据执行一些操作使其适合训练。所有 TorchVision 数据集都有两个参数——transform用于修改特征target_transform用于修改标签——它们接受包含变换逻辑的可调用对象。torchvision.transforms模块提供了几种常用的现成变换。FashionMNIST 的特征是 PIL Image 格式标签是整数。对于训练我们需要将特征作为归一化的张量将标签作为独热编码one-hot张量。为了进行这些变换我们使用torchvision.transforms.v2API 以及torch.nn.functional.one_hot。importtorch# 导入 PyTorch 核心库importtorch.nn.functionalasF# 导入函数式接口用于 one_hot 等操作fromtorchvisionimportdatasets# 导入视觉数据集模块fromtorchvision.transformsimportv2# 导入数据变换模块 v2 版本dsdatasets.FashionMNIST(# 创建 FashionMNIST 数据集rootdata,# 数据存储路径trainTrue,# 指定为训练集downloadTrue,# 如果数据不存在则下载transformv2.Compose([# 对图像进行变换组合v2.ToImage(),# 将 PIL 图像转为 Image 张量格式v2.ToDtype(torch.float32,scaleTrue)# 转为 float32 类型并缩放到 [0,1]]),target_transformv2.Lambda(# 对标签进行 Lambda 变换lambday:F.one_hot(torch.tensor(y),num_classes10).float()# 将整数标签转为 10 维独热编码浮点张量),)ToImage() 和 ToDtype()torchvision.transforms.v2API 用两步管道取代了旧的ToTensor变换。v2.ToImage将 PIL 图像或 NumPyndarray转换为torchvision.tv_tensors.Image张量v2.ToDtype配合scaleTrue将其转换为float32类型并将像素强度值缩放到 [0., 1.] 范围。Lambda 变换Lambda TransformsLambda 变换应用任何用户定义的 lambda 函数。在这里我们使用torch.nn.functional.one_hot将整数标签转换为大小为 10 的独热编码张量数据集中的标签数量然后将其转换为float类型以匹配预期的数据类型。target_transformv2.Lambda(# 创建 Lambda 变换lambday:F.one_hot(torch.tensor(y),num_classes10).float()# 将整数标签转为 10 维独热编码浮点张量)

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询