在TensorFlow中tf.argmax()vs tf.arg_max()

时间:2017-02-17 01:46:00

标签: python tensorflow

似乎tf.argmax()tf.arg_max()正在为输出矩阵中最大元素的独立元素做同样的事情。

https://www.tensorflow.org/api_docs/python/tf/argmax https://www.tensorflow.org/api_docs/python/tf/arg_max

为什么TensorFlow有两个API?

2 个答案:

答案 0 :(得分:7)

以下是argmax的源代码(来自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)

如您所见,argmax正在使用arg_max。同样在代码中,我建议使用argmax因为arg_max可能很快就会被弃用。

答案 1 :(得分:0)

对于TensorFlow版本 1.14.0 ,建议使用tf.math.argmax函数。此外,不建议使用dimension参数,而可以使用axis

样品

tf.math.argmax(input, axis=1)