Вероятности Keras softmax

Я пытаюсь получить вероятности softmax из сети, последний слой которой является слоем softmax, и когда я использую model.predict (), я получаю классы вместо вероятностей. Может ли кто-нибудь сказать, как получить вероятности.

 model = Sequential() 
 model.add(Convolution2D(32, 3, 3,input_shape=(32, 32, 3))) 
 model.add(MaxPooling2D((2, 2))) 
 model.add(Dropout(0.5))
 model.add(Activation('relu'))
 model.add(Convolution2D(32, 3, 3))
 model.add(MaxPooling2D((2, 2))) 
 model.add(Dropout(0.5))
 model.add(Activation('relu'))
 model.add(Flatten())      
 model.add(Dense(128))
 model.add(Activation('relu')) 
 model.add(Dense(43)) 
 model.add(Activation('softmax'))

person bmg    schedule 17.09.2017    source источник
comment
Пожалуйста, предоставьте дополнительную информацию, если в сети есть выход softmax, то model.predict вернет эти вероятности. Если вы не видите вероятностей, значит, в коде что-то не так.   -  person Dr. Snoopy    schedule 18.09.2017
comment
Что вы понимаете под классами и вероятностями? Softmax всегда возвращает шанс всех классов, равный 1.   -  person Daniel Möller    schedule 18.09.2017
comment
покажите код построения вашей модели, пожалуйста   -  person Bob    schedule 18.09.2017
comment
Моя сеть:. Моя сеть: model = Sequential () model.add (Convolution2D (32, 3, 3, input_shape = (32, 32, 3))) model.add (MaxPooling2D ((2, 2))) model.add (Dropout (0.5)) model.add (Activation ('relu')) model.add (Convolution2D (32, 3, 3)) model.add (MaxPooling2D ((2, 2))) model.add ( Dropout (0,5)) model.add (Activation ('relu')) model.add (Flatten ()) model.add (Dense (128)) model.add (Activation ('relu')) model.add (Dense ( 43)) model.add (Активация ('softmax'))   -  person bmg    schedule 19.09.2017
comment
Когда я использую model.predict (pics_data [0: 6], batch_size = 32, verbose = 1), я получаю нули и единицу вместо вероятностей (я думаю, это напрямую предсказанный класс)   -  person bmg    schedule 19.09.2017
comment
Я просто скопирую модель в основной вопрос для наглядности   -  person Daniel GL    schedule 19.06.2018


Ответы (1)


Выходные данные вашей модели будут иметь значения от 0 до 1. В вашей модели должен быть вектор размером 43, и сумма всех выходных данных будет добавлена ​​к единице.

В зависимости от вашего обучения эти «вероятности» часто будут почти равны единице для выбранного класса, если они аналогичны примерам обучения, показывая, что модель была хорошо обучена.

person Daniel GL    schedule 19.06.2018