一. torch.argmax()函数解析

1. 官网链接

torch.argmax(),如下图所示:

2. torch.argmax(input)函数解析

torch.argmax(input) → LongTensor

将输入input张量,无论有几维,首先将其reshape排列成一个一维向量,然后找出这个一维向量里面最大值的索引。

3. 代码举例

import torch
x = torch.randn(3,4)
y = torch.argmax(x)#对应于x中最大元素的索引值
x,y
输出结果如下:
import torch
x = torch.randn(3,4)
y = torch.argmax(x)#对应于x中最大元素的索引值
x,y

4. torch.argmax(input,dim) 函数解析

torch.argmax(input, dim, keepdim=False) → LongTensor

函数返回其他所有维在这个维度上面张量最大值的索引。
torch.argmax()函数中dim表示该维度会消失,可以理解为最终结果该维度大小是1,表示将该维度压缩成维度大小为1。

举例理解:对于一个维度为(d0,d1) 的矩阵来说,dim=1表示求每一行中最大数的在该行中的列号,最后得到的就是一个维度为(d0,1) 的二维矩阵,最终列这一维度大小为1就要消失了,最终结果变成一维张量(d0);
dim=0表示求每一列中最大数的在该列中的行号,最后我们得到的就是一个维度为(1,d1) 的二维矩阵,结果行这一维度大小为1就要消失了,最终结果变成一维张量(d1)。

因此,我们想要求每一行最大的列标号,我们就要指定dim=1,表示我们不要列了,保留行的size就可以了。
假如我们想求每一列的最大行标,就可以指定dim=0,表示我们不要行了,求出每一列的最大值的下标,最后得到(1,d1)的一维矩阵。

5. 代码举例

5.1 输入二维张量torch.Size([3, 4]),dim=0表示将dim=0这个维度大小由3压缩成1,然后找到dim=0这三个值中最大值的索引,这个索引表示dim=0行索引标号,结果张量维度变为torch.Size([4])。

import torch
x = torch.randn(3,4)
y = torch.argmax(x,dim=0)#dim=0表示将dim=0这个维度大小由3压缩成1,然后找到dim=0这三个值中最大值的索引,这个索引表示dim=0行索引标号
x,x.shape,y,y.shape
输出结果如下:
(tensor([[ 2.6347,  0.6456, -1.0461, -1.5154],[-1.3955, -1.2618, -0.5886, -0.5947],[-1.5272, -2.0960,  0.9428, -0.9532]]),torch.Size([3, 4]),tensor([0, 0, 2, 1]),torch.Size([4]))

5.2 输入二维张量torch.Size([3, 4]),dim=1表示将dim=1这个维度大小由4压缩成1,然后找到dim=1这四个值中最大值的索引,这个索引表示dim=1列索引标号,结果张量维度变为torch.Size([3])。

import torch
x = torch.randn(3,4)
y = torch.argmax(x,dim=1)#dim=1表示将dim=1这个维度大小由4压缩成1,然后找到dim=1这四个值中最大值的索引,这个索引表示dim=1列索引标号
x,x.shape,y,y.shape
输出结果如下:
(tensor([[ 0.1549,  0.4331,  0.3575,  1.1077],[ 2.0233,  2.0085, -0.6101, -1.8547],[-0.5101, -0.4052,  0.3458, -0.7802]]),torch.Size([3, 4]),tensor([3, 0, 2]),torch.Size([3]))

5.3 输入三维张量torch.Size([2, 3, 4]),dim=0表示将dim=0这个维度大小由2压缩成1,然后找到dim=0这两个值中最大值的索引,这个索引表示dim=0维索引标号。dim=0,即将第一个维度消除,也就是将两个[34]矩阵只保留一个,因此要在两组中作比较,即将上下两个[34]的矩阵分别在对应的位置上比较大小,结果矩阵张量维度变为torch.Size([3, 4])。

import torch
x = torch.randn(2,3,4)
y = torch.argmax(x,dim=0)#dim=0表示将dim=0这个维度大小由2压缩成1,然后找到dim=0这两个值中最大值的索引,这个索引表示dim=0维索引标号
x,x.shape,y,y.shape
输出结果如下:
(tensor([[[-1.4430,  0.0306, -1.0396,  0.1219],[ 0.1016,  0.0889,  0.8005,  0.3320],[-1.0518, -1.4526, -0.4586, -0.1474]],[[ 1.2274,  1.5806,  0.5444, -0.3088],[-0.8672,  0.3843,  1.2377,  2.1596],[ 0.0671,  0.0847,  0.5607, -0.7492]]]),torch.Size([2, 3, 4]),tensor([[1, 1, 1, 0],[0, 1, 1, 1],[1, 1, 1, 0]]),torch.Size([3, 4]))

5.4 输入三维张量torch.Size([2, 3, 4]),dim=1表示将dim=1这个维度大小由3压缩成1,然后找到dim=1这三个值中最大值的索引,这个索引表示dim=1维索引标号。dim=1,即将第二个维度消除(纵向压缩成一维),结果矩阵张量维度变为torch.Size([2, 4])。

import torch
x = torch.randn(2,3,4)
y = torch.argmax(x,dim=1)#dim=1表示将dim=1这个维度大小由3压缩成1,然后找到dim=1这三个值中最大值的索引,这个索引表示dim=1维索引标号
x,x.shape,y,y.shape
输出结果如下:
(tensor([[[-1.7136,  0.5528,  0.5171,  1.2978],[ 1.0250, -0.2687,  0.6727, -0.2013],[ 0.1366, -1.0563,  0.1965,  1.5303]],[[-0.0048,  1.6265, -1.0341, -0.3994],[ 1.5536,  0.9739, -0.0913,  0.0889],[-0.6703, -0.9099, -0.6400, -0.1807]]]),torch.Size([2, 3, 4]),tensor([[1, 0, 1, 2],[1, 0, 1, 1]]),torch.Size([2, 4]))

5.5 输入三维张量torch.Size([2, 3, 4]),dim=2表示将dim=2这个维度大小由4压缩成1,然后找到dim=2这四个值中最大值的索引,这个索引表示dim=2维索引标号。dim=2,即将第三个维度消除(横向压缩成一维),结果矩阵张量维度变为torch.Size([2, 3])。

import torch
x = torch.randn(2,3,4)
y = torch.argmax(x,dim=2)#dim=2表示将dim=2这个维度大小由4压缩成1,然后找到dim=2这四个值中最大值的索引,这个索引表示dim=2维索引标号
x,x.shape,y,y.shape
输出结果如下:
(tensor([[[-0.3493,  0.8838,  0.5876, -0.3967],[-1.5795,  2.6964,  0.7266,  0.3517],[-0.6949, -1.4385, -0.0993,  0.1679]],[[-0.4924, -0.8955,  0.5511,  0.6287],[ 0.2338, -0.5787, -0.2081, -1.3032],[ 0.6429,  0.0949,  0.3319, -0.8551]]]),torch.Size([2, 3, 4]),tensor([[1, 1, 3],[3, 0, 0]]),torch.Size([2, 3]))

Pytorch中torch.argmax()函数解析相关推荐

  1. Pytorch中torch.repeat()函数解析

    一. torch.repeat()函数解析 1. 说明 官网:torch.tensor.repeat(),函数说明如下图所示: 2. 函数功能 torch.tensor.repeat()函数可以对张量 ...

  2. 【Pytorch】torch.argmax 函数详解

    文章目录 一.一个参数时的 torch.argmax 函数 1. 介绍 2. 实例 二.多个参数时的 torch.argmax 函数 1. 介绍 2. 实例 实例1:二维矩阵 实例2:三维矩阵 实例3 ...

  3. PyTorch中torch.norm函数详解

    torch.norm() 是 PyTorch 中的一个函数,用于计算输入张量沿指定维度的范数.具体而言,当给定一个输入张量 x 和一个整数 p 时,torch.norm(x, p) 将返回输入张量 x ...

  4. pytorch中torch.cholesky()函数的使用

    1. 函数介绍: 功能:计算对称正定矩阵的Cholesky分解.A 或对于成批的对称正定矩阵.如果 upper 为 True ,则返回的矩阵 U 为上三角,分解形式为:A=U^TU如果 upper 为 ...

  5. pytorch 中 torch.cat 函数的使用

    1. 字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 2. 例子理解 >>> import torch ...

  6. Pytorch中torch.unsqueeze()和torch.squeeze()函数解析

    一. torch.squeeze()函数解析 1. 官网链接 torch.squeeze(),如下图所示: 2. torch.squeeze()函数解析 torch.squeeze(input, di ...

  7. Pytorch中torch.numel(),torch.shape,torch.size()和torch.reshape()函数解析

    一. torch.numel()函数解析 1. 官网链接 torch.numel(),如下图所示: 2. torch.numel()函数解析 torch.numel(input) → int 返回输入 ...

  8. 关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题

    关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题 Hook 是 PyTorch 中一个十分有用的特性.利用它,我们可以不必改变网络输入输出的结构, ...

  9. Pytorch中的collate_fn函数用法

    Pytorch中的collate_fn函数用法 官方的解释:   Puts each data field into a tensor with outer dimension batch size ...

最新文章

  1. 通过Auto Layout深入了解SizeClasses的好处和使用
  2. 如何制作python代码_如何使用50行Python代码制作一个计算器
  3. 探索 dotnet core 为何在 Windows7 系统需要补丁的原因
  4. UNIX下 oracle expdp,Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)
  5. 计算机主板diy,Pc-硬件-装机DIY-〖菜鸟入门篇〗电脑主板图解
  6. oracle 未找到段的存储定义,Exp-00003 no storage definition found issue in oracle 11g (未找到段 (0,0) 的存储定义)...
  7. SAP 导出 HTML,【我sap这导出数据表格export.mhtml怎么转换为 excel 工作表.xlsx】excel生成html表格数据...
  8. TableLayout与MigLayout
  9. java ftps上传_java – 使用FTPS将文件从android传输到服务器
  10. 灰色关联分析与预测模型
  11. 2022·09·漏洞众测平台·企业应急响应中心SRC·大集合·不定时更新
  12. 基于Qt的连连看小游戏
  13. 快速检索2021年EI会议论文的方法
  14. 手机设备唤醒计算机,手机遥控电脑开机神器!局域网唤醒App
  15. H5 集成微信自定义分享(兼容 ios android)
  16. 打包AS中的APK文件
  17. IT培训有靠谱的机构吗,长什么样的?
  18. 电脑病毒删除的文件怎么找回?两种方法,快来试试吧
  19. v-charts legend设置排列对齐的方法
  20. 什么是WebSocket?WebSocket在Vue中如何使用?

热门文章

  1. PostgreSQL日志管理
  2. Android 修改aar中的manifest文件
  3. kettle提示:ArrayIndexOutOfBoundsException
  4. 二类电商是什么?二类电商具体如何赚钱?
  5. QT Dialog pushbutton 取消焦点
  6. javascript 图片转base64(免费源码)
  7. 网络之路--【第五章】——IP编址之VLSM
  8. 不会使用计算机的人怎么办,平时用电脑办公的人,这5件事情别做了
  9. 分组密码算法分析,改进
  10. 为什么云计算必须变“硬”?