Pytorch和numpy中的max操作


1.np.max

返回numpy数组中的最大值,默认axis为None,此时返回所有元素中的最大值,若进行初始化,则选择axis维度下的最值,例如对于矩阵来说,axis=0表示列最大值,axis=1表示行最大值

arr = np.random.randn(2, 2) print(arr) print(np.max(arr)) print(np.max(arr, axis=1))

结果:

[[ 2.49654859   -0.21022188]
[ 0.70946971    0.84199004]]
2.496548592171631
[2.49654859    0.84199004]

2.np.maximum

将传入的数组中的每一个元素与第二个参数进行比较,取值为二者中的较大者

arr = np.random.randn(2, 2) print(arr) print(np.maximum(arr, 1))

结果:

[[ 2.49654859   -0.21022188]
[ 0.70946971    0.84199004]]

[[2.49654859   1. ]
[1.          1. ]]

3.np.argmax

返回axis对应维度的最大元素的位置,默认None,文档说明如下

 

 

 意思就是把矩阵展开,返回下标

arr = np.random.randn(2, 2) print(arr) print(np.argmax(arr, 1))
print(np.argmax(arr))

结果:

[[ 2.49654859   -0.21022188]
[ 0.70946971    0.84199004]]

[0 1]

0

4.torch.max

效果相当于max和argmax的组合,会返回两个返回值,返回值1表示对应axis维度最大的值,返回值2表示应axis维度取最大值的位置

arr = np.random.randn(2, 2) print(arr) print(torch.max(torch.tensor(arr), 1)) _, a = torch.max(torch.tensor(arr), 1) print(a)

结果:

[[ 2.49654859   -0.21022188]
[ 0.70946971    0.84199004]]

torch.return_types.max(
values=tensor([1.0242, 0.2471], dtype=torch.float64),
indices=tensor([1, 0]))
tensor([1, 0])

PS:_的作用是忽略掉返回值1,因为在使用torch进行预测的时候,我们不关心具体的值是多少,只是想知道预测的标签。

5.torch.argmax

torch的返回值2,也即是下标,就是用torch.argmax计算出来的

arr = np.random.randn(2, 2) print(arr) print(torch.argmax(torch.tensor(arr),1)) print(a)

结果:

[[ 2.49654859   -0.21022188]
[ 0.70946971    0.84199004]]

tensor([1, 0])


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM