当前位置: 首页 > news >正文

【PyTorch学习笔记 - 03】 Transforms

数据并不总是以训练机器学习算法所需的最终处理形式出现。我们使用变换对数据进行一些处理,使其适合训练。

图像的背后依然是数字,是有一堆数字以特定的规律组合而成。深度学习模型的训练需要输入不是一张张的图片,而是每张图片背后的数字组合。因此,需要对对象进行转换。因为直接将图片输入模型是不可行的。解决这个问题很好的方式就是pytorch的这个函数,tansform。

所有的TorchVision datasets都有两个参数——transform用于修改特征,target_transform用于修改标签——这两个参数接受包含转换逻辑的可调用对象。torchvision.transforms模块提供了一些常用的现成转换方法。

FashionMNIST数据集的特征采用PIL图像格式,标签为整数。对于训练,我们需要将特征转换为归一化张量,将标签转换为独热编码张量。为实现这些转换,我们使用ToTensorLambda

import torch
from torchvision import datasets
from torchvision.transforms import ToTensor, Lambdads = datasets.FashionMNIST(root="data",train=True,download=True,transform=ToTensor(),target_transform=Lambda(lambda y: torch.zeros(10, dtype=torch.float).scatter_(0, torch.tensor(y), value=1))
)

ToTensor()

ToTensor将PIL图像或NumPy ndarray 转换为 FloatTensor,并将图像的像素强度值缩放到范围 [0., 1.]。

Lambda Transforms

Lambda变换应用任何用户定义的Lambda函数。在这里,我们定义一个函数,将整数转换为独热编码张量。它首先创建一个大小为10的零张量(我们数据集中标签的数量),然后调用scatter_,该函数在标签 y 给出的索引上分配一个value=1

target_transform = Lambda(lambda y: torch.zeros(10, dtype=torch.float).scatter_(dim=0, index=torch.tensor(y), value=1))
http://www.dtcms.com/a/327279.html

相关文章:

  • 算法打卡力扣第88题:合并两个有序数组(easy)
  • Java的异常机制
  • 【牛客刷题】REAL806 放它一马:怪物经验值最大化策略详解
  • 云原生应用的DevOps3(CI/CD十大安全风险、渗透场景)
  • UE5多人MOBA+GAS 42、提高头像画质
  • C++——高性能组件
  • AI大模型基础:BERT、GPT、Vision Transformer(ViT)的原理、实现与应用
  • 【2】Transformers快速入门:统计语言模型是啥?
  • Agent智能体基础
  • 「日拱一码」057 逆向强化学习(IRL)
  • 从0开始的中后台管理系统-5(菜单的路径绑定以及角色页面的实现)
  • 分布式光伏气象站:为光伏电站的 “气象感知眼”
  • 自建知识库,向量数据库 体系建设(一)之BERT 与.NET 4.5.2 的兼容困境:技术代差下的支持壁垒
  • AWS EKS 常用命令大全:从基础管理到高级运维
  • 开发npm包【详细教程】
  • AWS KMS VS AWS Cloud HSM VS AWS Secret Manager?
  • 开源!!! htop移植到OpenHarmony
  • 自动驾驶决策算法 —— 有限状态机 FSM
  • AI项目提示-提示词-属于-mcp-cli等
  • css初学者第五天
  • 【CSS 变量】让你的 CSS “活”起来:深入理解 CSS 自定义属性与主题切换
  • 现代 CSS工具
  • web前端第二次作业
  • 【CSS 视觉】无需JS,纯 CSS 实现酷炫视觉效果(clip-path, filter, backdrop-filter)
  • 微前端面试考点与答案
  • 纯CSS+JS制作抽奖大转盘
  • 【CSS3】录音中。。。
  • aspose word for java 使用书签进行内容填充和更新
  • AppStorageV2:鸿蒙全局状态管理详解-ArkUI本地存储
  • django 如何读取项目根目录下的文件内容