news 2026/4/15 15:21:05

原始数据—>张量转换后会丢失原始数据吗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
原始数据—>张量转换后会丢失原始数据吗

学习李沐香蕉目标检测时疑问

原始数据 → 张量的转换链路(全程可回溯):

1. 图像原始数据的转换链路
硬盘上的.png文件(原始数据) ↓ 由torchvision.io.read_image读取 单个图像张量(uint8,[C,H,W])→ 存入images列表 ↓ 在BananasDataset的__getitem__中 转为float32张量(模型可训练)

张量和原始图片是一一对应的数值映射

比如原始图片中 (100,200) 像素的 RGB 值是 (255,0,0),张量中img[0,100,200]=255(R 通道)、img[1,100,200]=0(G 通道)、img[2,100,200]=0(B 通道)。

若要还原为 “可视化的原始图片”,只需将张量转格式即可:

# 从images列表中取第一个图像张量(还原原始图片) img_tensor = train_dataset.features[0] # uint8张量,[3,H,W] # 步骤1:转置为[H,W,C](Matplotlib可视化格式) img_np = img_tensor.permute(1,2,0).numpy() # 步骤2:显示原始图片(和硬盘上的.png文件完全一致) d2l.plt.imshow(img_np)
2. 标签原始数据的转换链路
CSV文本文件(原始标注:img_name,label,xmin,ymin,xmax,ymax) ↓ 由pd.read_csv读取为DataFrame(文本→数字) ↓ 转为list(target)([0,100,80,200,180]) ↓ torch.tensor(targets).unsqueeze(1) 标签张量(float32,[N,1,5])

张量中的数值就是 CSV 里的原始数字(只是维度适配),比如张量labels[0] = [[0,100,80,200,180]],对应 CSV 中00001.png的标注:label=0, xmin=100, ymin=80, xmax=200, ymax=180

若要还原为 “原始 CSV 格式”,只需将张量转回 DataFrame:

# 从标签张量还原原始标注 labels_np = train_dataset.labels.squeeze(1).numpy() # [N,5] csv_raw = pd.DataFrame( labels_np, columns=['label','xmin','ymin','xmax','ymax'] ) # 添加img_name列(从CSV中读取的原始图像名) csv_raw['img_name'] = csv_data.index print(csv_raw) # 和原始CSV文件内容完全一致

为什么代码不返回 “原始数据”(文件 / 文本)?

PyTorch 模型训练的核心是数值计算,原始的.png 文件(二进制)、CSV 文本(字符串)无法直接输入模型 —— 必须转为张量(数值矩阵):

  1. 图像张量:是原始图片像素的数值化表示,可参与梯度计算、卷积等操作;
  2. 标签张量:是原始标注的数值化表示,可用于计算损失(如边界框回归损失)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 3:44:28

2025网络安全面试指南(非常详细)收藏这一篇就够了

1.1 网络安全行业现状 安全行业起步晚。安全行业整体起来才没几年,多数企业因为资源投入和建设时间原因导致覆盖面和深入度都不够,这其中甚至包括一些国内大厂,并没有想象的那么安全。其安全水位仅能应付一些白帽子级别,针对专业…

作者头像 李华
网站建设 2026/4/10 21:18:23

升级了 !Spring 6.0 + Boot 3.0,性能太强了!

👉 这是一个或许对你有用的社群🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 《项目实战(视频)》:从书中学,往事上…

作者头像 李华
网站建设 2026/4/10 4:23:30

黑马微服务p10mybatisplus09核心功能iservice 测试文档无法正常打开

问题描述在网课下面的这个位置,无法正常显示,具体下一张图片就像这样无法正常显示解决经过检查发现,是我的配置这里不太一样,我在yaml文件中的配置是直接在网课资料里面复制粘贴的,而我创建controller类的时候&#xf…

作者头像 李华
网站建设 2026/4/11 5:07:24

魔盒项目开发纪实:后端项目设计与开发

继续后端设计与开发:魔盒项目是一个基于物联网技术的智能设备管理系统,后端采用 Go 语言和 Beego 框架开发,提供了完整的设备管理、用户认证、OTA 固件升级等功能。本文将详细介绍后端开发的进度和实现情况。 技术栈 开发语言:G…

作者头像 李华
网站建设 2026/4/15 6:56:33

vLLM-Omni发布:高效全模态模型服务新框架

vLLM-Omni发布:高效全模态模型服务新框架 在大模型应用从实验室走向千行百业的今天,一个现实问题始终困扰着工程团队:如何用有限的 GPU 资源支撑不断增长的推理请求?尤其是在智能客服、内容生成、AI Agent 等高并发场景下&#x…

作者头像 李华
网站建设 2026/4/13 4:54:17

gpt-oss-20b推理优化:低延迟与高质量平衡

gpt-oss-20b推理优化:低延迟与高质量平衡重新定义本地大模型的可能性边界 当“运行一个接近GPT-4水平的语言模型”还意味着动辄上百美元的云服务账单和A100集群时,gpt-oss-20b 的出现像是一次技术平权运动——它用210亿总参数、仅激活36亿的稀疏机制&…

作者头像 李华