Dekóduj své predikce
Tvůj LSTM model je už natrénovaný (podrobnosti najdeš ve zprávě o úspěšném dokončení předchozího cvičení), takže nemusíš čekat. Teď je čas definovat funkci, která bude dekódovat jeho predikce. Natrénovaný model bude této funkci předán jako výchozí parametr.
Protože provádíš predikce na modelu, který používá funkci softmax, lze k získání indexu/pozice představující nejpravděpodobnější následující slovo z výstupního vektoru pravděpodobností použít numpy funkci argmax().
tokenizer, který jsi dříve vytvořil/a a natrénoval/a, je pro tebe načtený. Využiješ jeho interní slovník index_word, pomocí kterého převedeš predikci dalšího slova z modelu (jež je celé číslo) na skutečné slovo, které reprezentuje.
Jsi už velmi blízko tomu, abys mohl/a svůj model vyzkoušet!
Toto cvičení je součástí kurzu
Úvod do hlubokého učení s Keras
Pokyny k cvičení
- Pomocí
texts_to_sequences()převeď parametrtest_textna posloupnost čísel. - Získej predikci dalšího slova z modelu tak, že mu předáš
test_seq. Index/pozici slova s nejvyšší pravděpodobností získáš zavoláním.argmax(axis=1)[0]na numpy poli predikcí. - Vrať slovo, které odpovídá predikci, pomocí slovníku
index_wordtokenizéru.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
def predict_text(test_text, model = model):
if len(test_text.split()) != 3:
print('Text input should be 3 words!')
return False
# Turn the test_text into a sequence of numbers
test_seq = tokenizer.texts_to_sequences([____])
test_seq = np.array(test_seq)
# Use the model passed as a parameter to predict the next word
pred = ____.predict(____).argmax(axis = 1)[0]
# Return the word that maps to the prediction
return tokenizer.____[____]