Příprava dat pro trénování
V tomto cvičení budeš pokračovat v přípravě dat pro trénování modelu. Po vytvoření polí vět a následujících znaků je potřeba převést je na číselné hodnoty, se kterými model dokáže pracovat.
Tento krok je nezbytný, protože RNN modely pracují výhradně s čísly, nikoli s řetězci. Vytvoříš číselná pole obsahující nuly nebo jedničky na pozicích odpovídajících znakům přítomným ve větách. Jednička (nebo True) znamená, že daný znak je na dané pozici přítomen, nula (nebo False) jeho absenci.
Proměnné sentences, next_char, n_vocab, chars_window, num_seqs (počet vět v trénovacích datech) jsou v prostředí již načteny, stejně jako numpy pod aliasem np.
Toto cvičení je součástí kurzu
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras
Pokyny k cvičení
- Vytvoř
np.array()vyplněné nulami ve tvaru(počet vět, okno znaků, velikost slovníku znaků). - Pomocí slovníku
char_to_indexnastav pozici aktuálního znaku na1. - Nastav aktuální následující znak na
1. - Vypiš první pozici každého pole.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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")