形式: torch.max(input) → Tensor

返回输入tensor中所有元素的最大值:

a = torch.randn(1, 3)
>>0.4729 -0.2266 -0.2085
torch.max(a) #也可以写成a.max()
>>0.4729
形式: torch.max(input, dim, keepdim=False, out=None) -> (Tensor, LongTensor) 按维度dim 返回最大值,并且返回索引。 torch.max(a,0)返回每一列中最大值的那个元素,且返回索引(返回最大元素在这一列的行索引)。返回的最大值和索引各是一个tensor,一起构成元组(Tensor, LongTensor) a = torch.randn(3,3)
>>
0.2252 -0.0901 0.5663
-0.4694 0.8073 1.3596
0.1073 -0.7757 -0.8649 torch.max(a,0)
>>
(
0.2252
0.8073
1.3596
[torch.FloatTensor of size 3]
,
0
1
1
[torch.LongTensor of size 3]
torch.max(a,1)返回每一行中最大值的那个元素,且返回其索引(返回最大元素在这一行的列索引) a = torch.randn(3,3)
>>
0.2252 -0.0901 0.5663
-0.4694 0.8073 1.3596
0.1073 -0.7757 -0.8649 torch.max(a,1)
>>
(
0.5663
1.3596
0.1073
[torch.FloatTensor of size 3]
,
2
2
0
[torch.LongTensor of size 3]
)
拓展: torch.max()[0], 只返回最大值的每个数 troch.max()[1], 只返回最大值的每个索引 torch.max()[1].data 只返回variable中的数据部分(去掉Variable containing:) torch.max()[1].data.numpy() 把数据转化成numpy ndarry torch.max()[1].data.numpy().squeeze() 把数据条目中维度为1 的删除掉
torch.argmax 函数详解
1. 函数介绍
2. 实例演示
1. 函数介绍
torch.argmax(input, dim=None, keepdim=False) 返回指定维度最大值的序号
dim给定的定义是:the demention to reduce.也就是把dim这个维度的,变成这个维度的最大值的index。
dim的不同值表示不同维度。特别的在dim=0表示二维中的列,dim=1在二维矩阵中表示行。广泛的来说,我们不管一个矩阵是几维的,比如一个矩阵维度如下:(d0,d1,…,dn−1) ,那么dim=0就表示对应到d0 也就是第一个维度,dim=1表示对应到也就是第二个维度,依次类推。
知道dim的值是什么意思还不行,还要知道函数中这个dim给出来会发生什么?
举例说明: 例子1:torch.argmax()函数中dim表示该维度会消失。 这个消失是什么意思? 官方英文解释是:dim (int) – the dimension to reduce. 我们知道argmax就是得到最大值的序号索引,对于一个维度为(d0,d1) 的矩阵来说,我们想要求每一行中最大数的在该行中的列号,最后我们得到的就是一个维度为(d0,1) 的一维矩阵。这时候,列这一维度就要消失了。 因此,我们想要求每一行最大的列标号,我们就要指定dim=1,表示我们不要列了,保留行的size就可以了。 假如我们想求每一列的最大行标,就可以指定dim=0,表示我们不要行了,求出每一列的最大值的下标,最后得到(1,d1)的一维矩阵。 2. 实例演示
实例1: import torch
a = torch.tensor(
[
[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1]
])
b = torch.argmax(a, dim=0)
print(b)
print(a.shape) 输出结果: tensor([1, 2, 0, 1])
torch.Size([3, 4]) dim=0的维度为3,即在那3组数据中作比较,求得是每一列中的最大行标,因此为[1,2,0,4]。 实例2: import torch
a = torch.tensor([
[
[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1]
], [
[-1, 7, -5, 2],
[9, 6, 2, 8],
[3, 7, 9, 1]
]])
b = torch.argmax(a, dim=0)
print(b)
print(a.shape) """
tensor([[0, 1, 0, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])
torch.Size([2, 3, 4])""" # dim=0,即将第一个维度消除,也就是将两个[3*4]矩阵只保留一个,因此要在两组中作比较,即将上下两个[3*4]的矩阵分别在对应的位置上比较大小 b = torch.argmax(a, dim=1)
"""
tensor([[1, 2, 0, 1],
[1, 2, 2, 1]])
torch.Size([2, 3, 4])
"""
# dim=1,即将第二个维度消除,这么理解:矩阵维度变为[2*4];
"""
[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1];
纵向压缩成一维,因此变为[1,2,0,1];同理得到[1,2,2,1];
"""
b = torch.argmax(a,dim=2)
"""
tensor([[2, 0, 1],
[1, 0, 2]])
"""
# dim=2,即将第三个维度消除,这么理解:矩阵维度变为[2*3]
"""
[1, 5, 5, 2],
[9, -6, 2, 8],
[-3, 7, -9, 1];
横向压缩成一维
[2,0,1],同理得到下面的"""

最新文章

  1. Expert 诊断优化系列------------------给TempDB 降温
  2. windows+caffe(六)——convert.bat
  3. Android开发中经常使用的Content-Type简介
  4. CoordinatorLayout+TabLayout+ViewPager
  5. linux下配置ssledge代理服务器
  6. EF架构~Cannot attach the file as database
  7. Webwork 学习之路【06】Action 调用
  8. SimpleInjector的使用
  9. dijkstra,SPFA,Floyd求最短路
  10. Linux挂载U盘
  11. OpenCV——Sobel和拉普拉斯变换
  12. Spring学习之Ioc控制反转(1)
  13. 编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。
  14. sqlserver 注释提取工具
  15. 一次SocketException:Connection reset 异常排查
  16. swiper 初始化的两个小坑
  17. Swift运行时简介
  18. zabbix配置邮件告警
  19. laravel的路由设置,路由参数和路由命名(三)
  20. 不能安装64位office提示已安装32位的

热门文章

  1. django生成迁移文件和执行迁移的命令
  2. mysql-安装(windows版本)与登录
  3. java反射之-Javabean与Map的互转
  4. -bash: /usr/local/maven/apache-maven-3.8.1/bin/mvn: 权限不够
  5. C4C UI Design背景色
  6. 自定义 systemd service
  7. 反向传播神经网络(BP)
  8. Solution -「ABC 217」题解
  9. Netty-ProtobufVarint32
  10. 15分钟搭建RocketMQ源码调试环境