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])

posted @ 2020-08-13 21:42  owczhlol  阅读(1366)  评论(0)    收藏  举报