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))