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

深度学习框架PyTorch——从入门到精通(4)数据转换

转换(Transforms)

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

所有TorchVision数据集都有两个参数——transform来修改特征,target_transform来修改标签——接受包含转换逻辑的可调用项。torchvision. transform模块提供了几个开箱即用的转换。

FashionMNIST 数据集的特征采用的是 Python Imaging Library(PIL)图像格式,而标签是整数。
对于训练来说,我们需要将特征转换为归一化的张量,将标签转换为独立热编码的张量。
为了实现这些转换,我们使用 ToTensorLambda 这两个函数(类)。

import torch
from torchvision import datasets
from torchvision.transforms import ToTensor, Lambda

ds = 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方法:将PIL图像或NumPyndarray转换为FloatTensor。并在[0.,1.]范围内缩放图像的像素强度值。
  • Lambda变换 :Lambda转换应用任何用户定义的lambda函数。
    在下方的例子里,我们定义了一个函数来将整数转换为单热编码张量。它首先创建一个大小为10的零张量(我们数据集中的标签数量)并调用scatter_。(scatter_在标签y给出的索引上分配一个value=1。)
target_transform = Lambda(lambda y: torch.zeros(
    10, dtype=torch.float).scatter_(dim=0, index=torch.tensor(y), value=1))

更多内容请看:torchvision.transforms API

相关文章:

  • 深入探讨TK矩阵系统:创新的TikTok运营工具
  • Redis 三主三从集群部署的完整方案
  • 华为营销流程落地方案:MTC=MTL+LTC
  • ETL中的实用功能以及数据集成方式
  • go语言中切片的长度和容量详解
  • opencv测量线距算法以及深入理解轮廓、采样点与 `pointPolygonTest` 及其在测量线距中的应用
  • Qt 中 isHidden 和 isVisible 的区别与使用
  • Spring 导入 XML 配置文件:@ImportResource
  • 力扣Hot100——560. 和为 K 的子数组
  • iwebsec-SQL数字型注入
  • 基于WebRTC的嵌入式音视频通话SDK:EasyRTC跨平台兼容性技术架构实时通信的底层实现
  • kotlin中的数据转换
  • Qt 通过MSVC编译运行项目
  • numpy学习笔记1:zeros = np.zeros((3, 3)) 详解
  • 脚本一键式启动Nginx、Mysql、Redis
  • C语言每日一练——day_11
  • 性能测试之grafana展示jmeter测试指标与主机监控
  • DApp用户激励机制设计:从代币经济到行为心理学的深度解构
  • Oracle常见系统函数
  • C# 中泛型(Generics)‌的核心概念
  • 广东省副省长刘红兵任湖南省委常委、宣传部部长
  • TCL科技一季度净利增超三倍,去年半导体显示业务营收创新高
  • 中国农业国际交流协会会长王守聪失联已逾半年,协会启动罢免
  • 五大国有银行明确将撤销监事会
  • 我国首部《人工智能气象应用服务办法》今天发布
  • 西湖大学独家回应本科招生走出浙江:经过三年试点,条件成熟