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

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://www.xdnf.cn/news/20348.html

相关文章:

  • 管理中心理学问:动机与管理的关联
  • 什么是CRM?定义、作用、功能、选型|CRM百科
  • 使用若依加Trae快速搭建一对儿多对多CRUD
  • 移植Qt4.8.7到ARM40-A5
  • PiscCode基于 Mediapipe 实现轨迹跟踪
  • TOGAF之架构标准规范-迁移计划
  • nginx 反向代理使用变量的坑
  • 亚马逊商品转化率怎么提高?从传统运营到智能广告的系统化突破
  • Nginx 配置片段主要用于实现​​正向代理​​,可以用来转发 HTTP 和 HTTPS 请求
  • LangChain关于提示词的几种写法
  • 深度学习:Dropout 技术
  • c++ 第三方库与个人封装库
  • 【完整源码+数据集+部署教程】西兰花实例分割系统源码和数据集:改进yolo11-AggregatedAtt
  • leetcode 6 Z字形变化
  • 基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档
  • 整理了几道前端面试题
  • 字符串格式化——`vsnprintf`函数
  • 图像处理:实现多图点重叠效果
  • More Effective C++ 条款29:引用计数
  • 【完整源码+数据集+部署教程】骰子点数识别图像实例分割系统源码和数据集:改进yolo11-DCNV2
  • 【知识点讲解】模型扩展法则(Scaling Law)与计算最优模型全面解析:从入门到前沿
  • 深入了解synchronized
  • 2025世界职校技能大赛总决赛争夺赛汽车制造与维修赛道比赛资讯
  • 告别Qt Slider!用纯C++打造更轻量的TpSlider组件
  • 一文了解太阳光模拟器的汽车材料老化测试及标准解析
  • 企业级 AI Agent 开发指南:基于函数计算 FC Sandbox 方案实现类 Chat Coding AI Agent
  • 集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测
  • 调试技巧:Chrome DevTools 与 Node.js Inspector
  • 从零开始学大模型之大模型训练流程实践
  • Multisim14.0(五)仿真设计