Keras model.predict для полиномиальной логистической регрессии

Я тренирую модель, выход которой - слой softmax размера 19. Когда я пытаюсь model.predict(x)для каждого входа я получаю то, что представляется распределением вероятностей по 19 классам. Я старался model.predict_classesи получил массив с размером x, с каждым выходом, равным 0. Как я могу получить один горячий векторов для выхода?

1 ответ

Решение

Таким образом, документация predcit_classes что-то вводит в заблуждение, потому что если вы тщательно проверите его реализацию, вы обнаружите, что он работает только для двоичной классификации. Для решения вашей проблемы вы можете использовать numpy библиотека (в основном - функция argmax) следующим образом:

import numpy as np
classes = np.argmax(model.predict(x), axis = 1)

.. для того, чтобы получить массив с номером класса для каждого примера. Чтобы получить горячий вектор - вы можете использовать keras встроенная функция to_categorical следующим образом:

import numpy as np
from keras.utils.np_utils import to_categorical
classes_one_hot = to_categorical(np.argmax(model.predict(x), axis = 1))
Другие вопросы по тегам