2017-02-10 9 views
4

Я тренирую модель, для которой мне нужно сообщить вероятности класса вместо одной классификации. У меня есть три класса, и каждый учебный экземпляр имеет один из трех назначенных ему классов.Как получить доступ к классам вероятности в keras?

Я пытаюсь использовать Keras для создания MLP. Но я не могу понять, как извлечь конечные вероятности класса для каждого класса. Я использую это в качестве базового примера: http://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/

Спасибо!

ответ

3

Вы можете использовать предсказать метод вашей обученной модели

предсказать

предсказать (я, х, batch_size = 32, многословен = 0)

Формирует выходные предсказания для входные образцы, обработка образцов в пакете .

Аргументы

х: входные данные, как массив Numpy (или список Numpy массивов, если модель имеет несколько выходов). batch_size: integer. verbose: verbosity mode, 0 или 1.

Возвращает массивное число прогнозов.

model.predict(input_to_your_network) 
5

Для выполнения классификации мульти-класса (nb_classes> 1) Вы должны подготовить вашу модель определенным образом.

  1. Удостоверьтесь, что ваши этикетки хорошо разработаны для классификации нескольких классов. Посмотрите на numpy_utils
  2. Вы должны использовать categorical_crossentropy в качестве целевой функции для нескольких классов классификации (см Keras objectives)
  3. Ваш последний слой должен иметь SoftMax функцию активации (гарантирует выход в диапазоне от 0 и 1) и nb_classes нейронов.
  4. Поезд вашей модели как обычно
  5. Используйте функцию прогнозирования. Вы получите вектор размера (nb_classes, 1), содержащий вероятности каждого класса.
+0

Вы бы представили пример модели? –

+1

Вы можете найти его здесь: https://keras.io, "Начало работы: 30 секунд Keras": " из keras.models импорт Sequential модели = Sequential() #Stacking слоев так же легко, как. add(): от keras.layers import Dense model.add (Плотность (единицы = 64, активация = 'relu', input_dim = 100)) model.add (Плотность (единицы = 10, активация = 'softmax')) #ie nb_classes = 10 # Когда ваша модель выглядит хорошо, сконфигурируйте ее процесс обучения с помощью # .compile(): model.compile (loss = 'категориальный_crossentropy', optimizer = 'sgd', metrics = ['precision' ])» –

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

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