ChatGPT解决这个技术问题 Extra ChatGPT

keras.argmax中axis=-1是什么意思?

我是 Keras 的初学者,需要帮助来理解 keras.argmax(a, axis=-1)keras.max(a, axis=-1)。当 a.shape = (19, 19, 5, 80) 时,axis=-1 是什么意思?还有 keras.argmax(a, axis=-1)keras.max(a, axis=-1) 的输出是什么?

有人在关注 deeplearning.ai 的卷积神经网络课程 :-)
添加到 Daniel Möller 的出色答案中,如果您的数据具有形状 (19,19,5,80),则 keras.max(a, axis=-1) 将返回形状为 (19,19,5) 的矩阵,其中输出矩阵的每个值将是 80 个元素中的最大值(最大值最后一个索引中指定的值)

D
Daniel Möller

这意味着 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 到 18

K.argmax(a,axis= 1 or -3) 返回 (19,5,80) 值从 0 到 18

K.argmax(a,axis= 2 or -2) 返回 (19,19,80) 值从 0 到 4

K.argmax(a,axis= 3 or -1) 返回 (19,19,5) 值从 0 到 79


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