В чем смысл оси = -1 в keras.argmax?

Я новичок в Керасе, и мне нужна помощь, чтобы понять keras.argmax(a, axis=-1) и keras.max(a, axis=-1). Что означает axis=-1, когда a.shape = (19, 19, 5, 80)? А также, что будет выходом keras.argmax(a, axis=-1) и keras.max(a, axis=-1)?

Ответ 1

Это означает, что индекс, который будет возвращен argmax, будет взят из последней оси.

Ваши данные имеют некоторую форму (19,19,5,80). Это значит:

  • Ось 0 = 19 элементов
  • Ось 1 = 19 элементов
  • Ось 2 = 5 элементов
  • Ось 3 = 80 элементов

Теперь отрицательные числа работают точно так же, как в списках Python, в массивах с нулями и т.д. Отрицательные числа представляют обратный порядок:

  • Ось -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