这里,我得到的数据是[0 1 0 0]或[0 0 0 1],---我得到的是它告诉我[0 1 0 0]是标签2,[0 0 0 1]是标签4,[1 0 0 0]是标签1,[0 0 1 0]是标签3。
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)
我需要它的百分比,就像它确信它是0.67,在softmax之前的值,或者它的值,有足够的信心告诉它是label 1,label 2,label 3,还是label 4--
我需要的百分比是任何一个或所有这些百分比像...
如果一个输入是给定的,输出就像
1级-0.87
2级-0.3
三级-0.5
我怎样才能得到这样的输出而不仅仅是[1 0 0 0]我应该在上面的代码旁边添加什么请告诉我
3条答案
按热度按时间wrrgggsh1#
有一个名为
predict_proba
的方法,它返回单个类的概率,而不是类预测。有关详细信息,请参阅此blog。
vhmi4jdf2#
yws3nbqq3#
predict返回一个包含预测的列表。你可以使用这个
这将返回
或者如果您在另一个列表中有这些类(您应该这样做)。
这返回