Avkoda dina prediktioner
Din LSTM-model har redan tränats (se föregående övnings bekräftelsemeddelande för detaljer) så att du slipper vänta. Nu är det dags att definiera en funktion som avkodar modellens prediktioner. Den tränade model skickas in som en standardparameter till funktionen.
Eftersom du gör prediktioner med en modell som använder softmax-funktionen kan numpys argmax() användas för att hämta det index och den position som representerar det mest troliga nästa ordet i utdatavektorn med sannolikheter.
Den tokenizer du tidigare skapade och anpassade är inläst åt dig. Du kommer att använda dess interna ordbok index_word för att omvandla modellens nästa-ord-prediktion (ett heltal) till det faktiska skrivna ord det representerar.
Nu är du nära att kunna experimentera med din modell!
Den här övningen är en del av kursen
Introduktion till djupinlärning med Keras
Övningsinstruktioner
- Använd
texts_to_sequences()för att omvandla parameterntest_texttill en sekvens av tal. - Hämta modellens prediktion för nästa ord genom att skicka in
test_seq. Indexet och positionen för ordet med högst sannolikhet erhålls genom att anropa.argmax(axis=1)[0]på numpy-arrayen med prediktioner. - Returnera det ord som motsvarar prediktionen med hjälp av tokenizerarens ordbok
index_word.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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.____[____]