tf.argmax 与 tf.arg_max 用法相同,下面介绍 tf.argmax 用法
tf.argmax
def argmax(input, axis=None, name=None, dimension=None, output_type=dtypes.int64) numpy.argmax(a, axis=None, out=None) 返回沿轴axis最大值的索引。 Parameters: input: array_like,数组 axis : int, 可选,默认情况下,索引的是平铺的数组,否则沿指定的轴。 out : array, 可选 如果提供,结果以合适的形状和类型被插入到此数组中。 Returns: index_array : ndarray of ints 索引数组。它具有与a.shape相同的形状,其中axis被移除。
tf.argmax() 与 numpy.argmax() 方法的用法是一致的
axis = 0 的时候返回每一列最大值的位置索引
axis = 1 的时候返回每一行最大值的位置索引
axis = 2、3、4 ...,即为多维张量时,同理推断
例子
>>> a = np.arange(6).reshape(2,3) >>> a array([[0, 1, 2], [3, 4, 5]]) >>> np.argmax(a) 5 >>> np.argmax(a, axis=0) #0代表列 array([1, 1, 1]) >>> np.argmax(a, axis=1) #1代表行 array([2, 2]) >>> >>> b = np.arange(6) >>> b[1] = 5 >>> b array([0, 5, 2, 3, 4, 5]) >>> np.argmax(b) #只返回第一次出现的最大值的索引 1
tf.arg_max()
The following is the source code of argmax (from https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/math_ops.py).
# pylint: disable=redefined-builtin # TODO(aselle): deprecate arg_max def argmax(input, axis=None, name=None, dimension=None): if dimension is not None: if axis is not None: raise ValueError("Cannot specify both 'axis' and 'dimension'") axis = dimension elif axis is None: axis = 0 return gen_math_ops.arg_max(input, axis, name)
As you can see, argmax is using arg_max inside. Also from the code, I recommend using argmax because arg_max could be deprecated soon.
来源:https://www.cnblogs.com/nowgood/p/tfargmax-yu-tfargmax.html