keras.argmax中axis = -1的含义是什么?


71

我是Keras的初学者,需要帮助以了解keras.argmax(a, axis=-1)和理解keras.max(a, axis=-1)。是什么意思axis=-1a.shape = (19, 19, 5, 80)?而且也将是什么样的输出keras.argmax(a, axis=-1)keras.max(a, axis=-1)


57
有人正在关注deeplearning.ai的卷积神经网络课程:-)
Asciiom,

8
由Daniel默勒添加到优良的答案,如果数据具有这样的形状(19,19,5,80),然后keras.max(a, axis=-1)将返回的形状的基体(19,19,5),其中所述输出矩阵的每一个值将是最大的80个元件(最大的最后一个索引中指定的值的)

Answers:


141

这意味着将由argmax返回的索引将从最后一个轴获取。

您的数据有一定的形状(19,19,5,80)。这表示:

  • 轴0 = 19个元素
  • 轴1 = 19个元素
  • 轴2 = 5个元素
  • 轴3 = 80个元素

现在,负数的工作方式与python列表,numpy数组等完全相同。负数表示相反的顺序:

  • 轴-1 = 80个元素
  • 轴-2 = 5个元素
  • 轴-3 = 19个元素
  • 轴-4 = 19个元素

当您将axis参数传递给argmax函数时,返回的索引将基于该轴。您的结果将丢失此特定轴,但保留其他轴。

查看argmax每个索引将返回什么形状:

  • K.argmax(a,axis= 0 or -4)返回(19,5,80)值来自0 to 18
  • K.argmax(a,axis= 1 or -3)返回(19,5,80)值来自0 to 18
  • K.argmax(a,axis= 2 or -2)返回(19,19,80)值来自0 to 4
  • K.argmax(a,axis= 3 or -1)返回(19,19,5)值来自0 to 79

谢谢!我正在使用不同的数据结构,对我来说,使用Keras轴索引作为K.sum(three_Dimension_array,axis = [0,1])之类的东西很重要。
莱格尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.