Я тренирую модель, выход которой является слоем softmax размера 19. Когда я пытаюсь выполнить model.predict(x)
, для каждого ввода получается то, что представляется распределением вероятности по 19 классам. Я попробовал model.predict_classes
и получил массив numpy размером x
, каждый из которых равняется 0. Как я могу получить один горячий вектор для вывода?Keras model.predict для многомерной логистической регрессии
1
A
ответ
0
Таким образом, документация predcit_classes
как-то вводит в заблуждение, так как если вы тщательно проверите его implementation, вы обнаружите, что он работает только для двоичной классификации. Для того, чтобы решить вашу проблему, вы можете использовать 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))