最近在做一些项目的时候遇到一些问题,在此记录一下
1、argmax
numpy作为python的开源库,一直受到广大用户的青睐,numpy库中涉及到的argmax函数,其作用是返回数组中最大值的索引。
当一个数组中有多个相同的最大值的时候,numpy会返回第一个出现的最大值索引;当使用pytorch的argmax时候,返回的是最后一个出现的最大值索引;
import numpy as np
a = [1, 2, 3, 3]
b = np.array(a)
c = from_numpy(b)
print(argmax(b)) #输出为2
print(torch.argmax(c)) #输出为3
当然在libtorch中和pytorch的情况是一样的,在c++中使用vector的函数寻找最大值索引返回的也是第一个出现的最大值索引,和numpy相同。
2、argsort
在pytorch、libtorch和numpy中都存在argsort函数,但是对同一个数组进行排序并且此数组中存在许多相同的值的时候,三个库的排序是不一样的,他们之间的排序逻辑存在差异。