2017-01-10 12 views
1

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

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^