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