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

PyTorch中的torch.argmax()和torch.max()区别

在PyTorch中,torch.argmax()torch.max()都是针对张量操作的函数,但它们的核心区别在于返回值的类型和用途


1. torch.argmax()

  • 作用:仅返回张量中最大值所在的索引位置(下标)。
  • 返回值:一个整数或整数张量(维度比输入少一维)。
  • 使用场景
    需要知道最大值的位置时(如分类任务中预测类别标签)。
  • 示例
    import torchx = torch.tensor([5, 2, 9, 1])
    idx = torch.argmax(x)  # 返回值:tensor(2)(因为9是最大值,索引为2)
    

2. torch.max()

  • 作用:返回张量中的最大值本身或同时返回最大值及其索引
  • 两种模式
    • 模式一:只返回最大值
      value = torch.max(x)  # 返回tensor(9)
      
    • 模式二:同时返回最大值和索引(需指定dim维度)
      values, indices = torch.max(x, dim=0)  # 返回(values=tensor(9), indices=tensor(2))
      
  • 返回值
    • 若未指定dim:返回单个值(标量或与原张量同维)。
    • 若指定dim:返回元组(max_values, max_indices)

关键区别总结

函数torch.argmax()torch.max()
返回值索引(位置)最大值 (最大值, 索引)(取决于参数)
是否指定维度可指定dim(返回索引)不指定dim时返回最大值;指定时返回元组
典型用途获取分类结果的标签序号获取最大值本身或同时取值+定位
输出维度比输入少一维(沿dim压缩)与输入维度相同(不指定dim)或压缩维度

示例对比(多维张量)

y = torch.tensor([[3, 8, 2],[1, 5, 9]])# argmax: 返回每行最大值的索引
idx_row = torch.argmax(y, dim=1)  # tensor([1, 2])(第一行8在索引1,第二行9在索引2)# max: 返回每行最大值及其索引
values, indices = torch.max(y, dim=1)  
# values = tensor([8, 9]), indices = tensor([1, 2])

如何选择?

  • 只需知道最大值的位置(如分类标签) → argmax()
  • 需要最大值本身 → max()(不指定dim
  • 既要值又要位置(如Top-k计算) → max(dim=...)
  • 内存敏感场景:argmax仅返回索引(内存占用更小)
http://www.xdnf.cn/news/15283.html

相关文章:

  • 标准化模型格式ONNX介绍:打通AI模型从训练到部署的环节
  • 基于Springboot+UniApp+Ai实现模拟面试小工具二:后端项目搭建
  • 上位机知识篇---安装包架构
  • java集合类
  • 输入流挂起
  • 人脸图像生成(DCGAN)
  • Java线程进阶-并发编程
  • python的病例管理系统
  • halcon 求一个tuple的极值点
  • 性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力
  • 深入剖析Spring Bean生命周期:从诞生到消亡的全过程
  • JavaSE——Object
  • Linux驱动基本概念(内核态、用户态、模块、加载、卸载、设备注册、字符设备)
  • DSSA(Domain-Specific Software Architecture)特定领域架构
  • 台球 PCOL:极致物理还原的网页斯诺克引擎(附源码深度解析)
  • Leaflet面试题及答案(21-40)
  • 2025年体育科学与健康大数据国际会议(ICSSHBD 2025)
  • OpenAI 将推 AI Agent 浏览器:挑战 Chrome,重塑上网方式
  • 异构Active DataGuard对于convert参数的错误理解
  • SpringCloud之Feign
  • 从「小公司人事」到「HRBP」:选对工具,比转岗更能解决成长焦虑
  • 十二、k8s工程化管理Helm
  • Linux自动化构建工具(一)
  • pdf拆分
  • 《打破预设的编码逻辑:Ruby元编程的动态方法艺术》
  • LVS负载均衡-DR模式配置
  • 进制转换原理与实现详解
  • 【unity编辑器开发与拓展EditorGUILayoyt和GUILayoyt】
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (三)RISC-V架构深度解剖(下)
  • 【八股消消乐】浅尝Kafka性能优化