news 2026/6/10 14:03:35

【豆包写的】深入解析 torch.argmax 中 dim=1 与 one-hot 转整数标签的关系

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【豆包写的】深入解析 torch.argmax 中 dim=1 与 one-hot 转整数标签的关系

深入解析 torch.argmax 中 dim=1 与 one-hot 转整数标签的关系

你想理解在torch.argmax(y_true_cce, dim=1)中参数dim=1的具体含义,尤其是结合把 one-hot 标签转换为整数标签的场景——这是 PyTorch 处理张量维度的核心基础,我会用通俗的语言+可视化的例子讲清楚,让你一眼看懂。

一、dim(维度/轴)的核心定义

dim(也可以写成axis)是 PyTorch 张量的维度/轴参数,本质是指:对张量进行操作的“方向”

  • PyTorch 中维度从0开始计数;

  • 不同的dim对应不同的操作方向,核心是“沿着这个维度去计算/取值”。

先看我们之前的y_true_cce张量,它的结构和形状是关键:

import torch y_true_cce = torch.tensor([[0, 1, 0], [1, 0, 0]], dtype=torch.float32) print("张量内容:") print(y_true_cce) print("张量形状(shape):", y_true_cce.shape) # 输出 torch.Size([2, 3])

输出:

张量内容: tensor([[0., 1., 0.], [1., 0., 0.]]) 张量形状(shape): torch.Size([2, 3])

这个张量的shape=(2,3)表示:

  • dim=0:对应第一个维度(“行维度”),方向是垂直方向(遍历每一行);

  • dim=1:对应第二个维度(“列维度”),方向是水平方向(遍历每一列)。

可以用可视化更直观理解:

# y_true_cce 的结构 行0(样本0):[0, 1, 0] → 列0 列1 列2 行1(样本1):[1, 0, 0] → 列0 列1 列2 ↑ ↑ dim=0 dim=1 (垂直) (水平)

二、dim=1 在 torch.argmax 中的具体作用

torch.argmax()的核心功能是:返回指定维度上“最大值所在的索引”

结合dim=1,就是:对张量的每一行(每个样本),沿着列的方向(dim=1)找最大值的索引

1. 针对 one-hot 标签的实际意义

one-hot 标签的特点是“每行只有1个1(最大值),其余都是0”,所以dim=1就是找每行中“1”所在的列索引——这个索引正好对应样本的真实类别(比如列1对应类别1,列0对应类别0)。

2. 代码拆解验证

# 对 y_true_cce 执行 torch.argmax(dim=1) y_true_from_onehot = torch.argmax(y_true_cce, dim=1) print("dim=1 时的结果:", y_true_from_onehot) # 输出 tensor([1, 0]) # 对比:如果用 dim=0 会怎样?(反例,帮助理解) y_dim0 = torch.argmax(y_true_cce, dim=0) print("dim=0 时的结果:", y_dim0) # 输出 tensor([1, 0, 0])
结果解释:
  • dim=1

    • 第一行[0,1,0],列方向最大值是1,索引是1 → 结果第一个值是1;

    • 第二行[1,0,0],列方向最大值是1,索引是0 → 结果第二个值是0;

    • 最终得到[1,0],正好是我们需要的整数标签。

  • dim=0(反例):

    • 第一列[0,1],行方向最大值是1,索引是1 → 结果第一个值是1;

    • 第二列[1,0],行方向最大值是1,索引是0 → 结果第二个值是0;

    • 第三列[0,0],行方向最大值是0,索引是0 → 结果第三个值是0;

    • 最终得到[1,0,0],这是按列找最大值索引,和我们要的“每个样本的类别”无关。

三、通用规律:dim 参数的记忆方法

对于形状为(N, C)的张量(N=样本数,C=类别数,比如之前的 (2,3)):

dim 值操作方向适用场景
dim=0沿“列”的垂直方向(按列操作)找每列的最大值/均值(比如统计所有样本在某类别上的最大值)
dim=1沿“行”的水平方向(按行操作)对每个样本(每行)找类别索引(one-hot转整数标签)、计算每行的概率和等

总结

  1. dim是张量的“操作方向”,从0开始计数,dim=1对应二维张量的“列方向”(水平方向);

  2. torch.argmax(y_true_cce, dim=1)中,dim=1表示对每个样本(每行)找列方向上最大值的索引,正好提取 one-hot 标签的类别索引;

  3. 若张量形状是(样本数, 类别数),将 one-hot 转整数标签必须用dim=1,用dim=0会得到无意义的结果。

(注:文档部分内容可能由 AI 生成)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 15:41:35

Nodejs和vue框架的企业采购管理系统的设计与实现__

文章目录企业采购管理系统设计与实现摘要--nodejs技术栈--结论源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!企业采购管理系统设计与实现摘要 该系统基于Node.js与Vue.js框架构建,采用前后端分离架构,实现高效…

作者头像 李华
网站建设 2026/6/3 21:42:47

Debug:mlx-omni-server服务器用qwen3模型出错

背景:AI回答出错,开始以为是代码问题使得之前的对话出现在上下文,没想到是mlx-omni-server的问题 debug过程: 最开始比较好运地在github论坛找到同样的问题,大概率确认服务器出错。 之后用copilot写了一个简单的go代码…

作者头像 李华
网站建设 2026/6/9 20:03:07

导师严选2026 TOP9 AI论文写作软件:专科生毕业论文必备测评

导师严选2026 TOP9 AI论文写作软件:专科生毕业论文必备测评 2026年AI论文写作软件测评:为何值得专科生关注 随着人工智能技术的不断进步,AI论文写作工具逐渐成为学术研究中不可或缺的辅助工具。对于专科生而言,撰写毕业论文不仅是…

作者头像 李华
网站建设 2026/6/10 11:42:16

计算机毕业设计springboot基于前后端分离技术的未成年人心理健康咨询系统 基于 SpringBoot 与 Vue 的青少年心理支持平台的设计与实现 前后端分离架构下校园儿童心理援助服务系统

计算机毕业设计springboot基于前后端分离技术的未成年人心理健康咨询系统0614u0m8 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在“双减”与疫情后时代,未成年人焦…

作者头像 李华
网站建设 2026/6/10 11:44:23

量化基金的3个“谍战级”秘密武器,散户根本没法玩

引言: 你是否常常感到困惑?明明周末看到了各种利好消息,满心期待周一的大涨,结果开盘就是“高开低走”,自己总像是慢了半拍。你感觉自己仿佛在和一个看不见的对手博弈,总是在你做出决定之后,市场就走向了反…

作者头像 李华
网站建设 2026/6/10 11:42:19

SRC漏洞挖掘技巧,带你零基础入门到精通赏金!

SRC漏洞挖掘技巧,带你零基础入门到精通赏金! 前言 经常会有粉丝朋友私信我,想探究一下国内的SRC(安全响应中心)平台究竟支持了多少白帽黑客的生活?又有多少白帽黑客能够不依赖于传统工作,全职…

作者头像 李华