Как получить процент вероятности в модели прогнозирования керас CNN - PullRequest
0 голосов
/ 10 октября 2018

Здесь я получаю данные в виде [0 1 0 0] или [0 0 0 1], --- я понимаю, что это говорит мне, что [0 1 0 0] - это label2, [0 0 01] - это label4, [1 0 0 0] - это label1, [0 0 1 0] - это label3.

import pickle
from keras.preprocessing.sequence import pad_sequences

MAX_SEQUENCE_LENGTH = 1000
MAX_NB_WORDS = 20000

with open ('textsdata', 'rb') as fp:
    texts = pickle.load(fp)

tokenizer = Tokenizer(num_words=MAX_NB_WORDS)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
inputquery = ["Play some music will ya"]
sequences = tokenizer.texts_to_sequences(inputquery)
model = load_model('my_model.h5')
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['acc'])
print("sequences", sequences)

data = pad_sequences(sequences, maxlen=MAX_SEQUENCE_LENGTH)
classes = model.predict(data)
y_classes = classes.argmax(axis=-1)
print(y_classes)

Мне нужно это в процентах, как если бы он был уверен, что это label1 как 0.67softmax или значение того, что достаточно уверенно, чтобы сказать, что это label1 или label2 или label3 или label4--

Мне нужен процент от любого из них или все эти проценты, например ...

Если входной сигнал задан, выходной сигнал будет выглядеть как

Class1 - 0,87

Class2 - 0,3

Class3 - 0,5

Class4 - 0,5 Howмогу ли я получить такой вывод, а не просто [1 0 0 0] Что я должен добавить рядом с кодом выше, пожалуйста, скажите

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Существует метод с именем predict_proba, который возвращает вероятности отдельного класса вместо предсказания класса.Это можно использовать как

probabilities = model.predict_proba(data)

Более подробную информацию можно найти в этом блоге .

0 голосов
/ 13 марта 2019
from keras.models import load_model

from keras.preprocessing import image

model=load_model("/blah/blah/blah")

img = image.load_img(path, color_mode = "grayscale", target_size=(128, 128, 1))

y = image.img_to_array(img)

y = np.expand_dims(y, axis=0)

images = np.vstack([y])

classes = model.predict(images/255.0, batch_size=8, verbose=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...