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

PyTorch图像数据转换为张量(Tensor)并进行归一化的标准操作

transform = ToTensor()PyTorch 中用于将图像数据转换为张量(Tensor)并进行归一化的标准操作,以下是对其功能的逐层解析及关键细节:


核心功能总结

功能描述
类型转换将 PIL Image / numpy 数组 → PyTorch Tensor (dtype: torch.float32)
数值归一化像素值从 [0, 255][0.0, 1.0] (通过 ÷255 实现)
维度重排(H×W×C)* → (C×H×W)

注:(*) 仅当输入为 numpy 数组时需满足此内存布局,PIL Image 无需关注此规则


完整转换流程详解

1. 输入数据来源

支持两种常见格式:

  • PIL Image(推荐):直接读取的图片对象
  • Numpy Array:形状需为 (H, W, C)(Height × Width × Channels)
2. 执行的操作
graph LR
A[原始图像] --> B{数据源判断}
B -->|PIL Image| C[拆分通道 + 转Float + /255]
B -->|Numpy Array| D[转置维度 + 转Float + /255]
C & D --> E[生成 Torch Tensor]
3. 具体变化示例

以灰度图为例(单通道):

阶段数据形式取值范围数据类型备注
原始PIL图像PIL Image[0, 255]uint8高度×宽度
转换后Tensortorch.Tensor[0.0, 1.0]float32[Channel, Height, Width]

彩色图像(RGB三通道)同理,每个通道独立归一化。


关键技术点解析

为何要除以255?
  • 物理意义:将8位整型(0~255)映射到浮点型的连续区间[0,1],符合神经网络对输入范围的要求
  • 数学优势:避免大数值导致的梯度爆炸,加速收敛
  • 对比实验:不除以255的训练损失通常比归一化的高数十倍
维度重排的必要性
  • PyTorch设计规范:要求张量采用 (Batch_Size, Channels, Height, Width) 格式

文章转载自:

http://tlrRMTgo.nyjgm.cn
http://kYYIyRXo.nyjgm.cn
http://fNDPfbP0.nyjgm.cn
http://SRsVtyJb.nyjgm.cn
http://YaoVQFVJ.nyjgm.cn
http://0CiTYDlq.nyjgm.cn
http://CSeYfKGM.nyjgm.cn
http://Og92GtrV.nyjgm.cn
http://m9qj9aRq.nyjgm.cn
http://CQNkaDnS.nyjgm.cn
http://gbiGuAvy.nyjgm.cn
http://YplyqcUj.nyjgm.cn
http://OVTZ1e2C.nyjgm.cn
http://pLIN1TVE.nyjgm.cn
http://dcfAiDh3.nyjgm.cn
http://bNJomlm4.nyjgm.cn
http://a1ooY6Mm.nyjgm.cn
http://hS5zvT21.nyjgm.cn
http://js0PhwEe.nyjgm.cn
http://RXTbjKyG.nyjgm.cn
http://FIsSNsXv.nyjgm.cn
http://qFBYVrrY.nyjgm.cn
http://qBSCllri.nyjgm.cn
http://FTG01cnX.nyjgm.cn
http://2qhRMo3E.nyjgm.cn
http://6vqoKrQN.nyjgm.cn
http://vQQpDfRb.nyjgm.cn
http://QFhq5IxK.nyjgm.cn
http://WABNTXPa.nyjgm.cn
http://BtAIrZcm.nyjgm.cn
http://www.dtcms.com/a/368170.html

相关文章:

  • 图像去雾:从暗通道先验到可学习融合——一份可跑的 PyTorch 教程
  • EN-DC和CA的联系与区别
  • python + Flask模块学习 1 基础用法
  • 【Flask】测试平台中,记一次在vue2中集成编辑器组件tinymce
  • 【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
  • 【Python】QT(PySide2、PyQt5):点击不同按钮显示不同页面
  • flask的使用
  • Qt添加图标资源
  • 配置WSL2的Ubuntu接受外部设备访问
  • 产线相机问题分析思路
  • VisionPro联合编程相机拍照 九点标定实战
  • c++工程如何提供http服务接口
  • Linux查看相机支持帧率和格式
  • 必知!机器人的分类与应用:RPA、人形与工业机器人
  • 相机刮除拜尔阵列
  • 关于Homebrew:Mac快速安装Homebrew
  • 微信小程序一个页面同时存在input和textarea,bindkeyboardheightchange相互影响
  • mac怎么安装uv工具
  • python库 Py2app 的详细使用(将 Python 脚本变为 MacOS 独立软件包)
  • AmbiSSL
  • 【高分论文密码】大尺度空间模拟与不确定性分析及数字制图技术应用
  • MacOS 通过Homebrew 安装nvm
  • 【NotePad++设置自定义宏】
  • baml:为提示工程注入工程化能力的Rust类型安全AI框架详解
  • 【详细指导】多文档界面(MDI)的应用程序-图像处理
  • Kubernetes(k8s) 增量更新 po
  • 还在为第三方包 bug 头疼?patch-package 让你轻松打补丁!
  • k8s 部署 redis
  • Nginx 高性能调优指南:从配置到原理
  • 使用国内镜像源解决 Electron 安装卡在 postinstall 的问题