Preparare i dati per l'addestramento
In questo esercizio continuerai a preparare i dati per addestrare il modello. Dopo aver creato gli array di frasi e di caratteri successivi, devi trasformarli in valori numerici utilizzabili dal modello.
Questo passaggio è necessario perché i modelli RNN accettano solo numeri, non stringhe. Creerai array numerici che contengono zeri o uno nelle posizioni che rappresentano i caratteri presenti nelle frasi. Gli uno (o True) indicano che il carattere corrispondente è presente, mentre gli zeri (o False) indicano l’assenza del carattere in quella posizione della frase.
Le variabili sentences, next_char, n_vocab, chars_window, num_seqs (numero di frasi nei dati di training) sono già caricate nell’ambiente, così come numpy come np.
Questo esercizio fa parte del corso
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
Istruzioni dell'esercizio
- Istanzia un
np.array()di zeri con shape(numero di frasi, window di caratteri, dimensione del vocabolario). - Usa il dizionario
char_to_indexper impostare a1la posizione del carattere corrente. - Imposta a
1il carattere successivo corrente. - Stampa la prima posizione di ciascun array.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)
# Loop for every sentence
for i, sentence in enumerate(sentences):
# Loop for every character in sentence
for t, char in enumerate(sentence):
# Set position of the character to 1
numerical_sentences[i, t, ____] = ____
# Set next character to 1
____[i, char_to_index[next_chars[i]]] = 1
# Print the first position of each
print(____, ____, sep="\n")