Przygotowanie danych do trenowania
W tym ćwiczeniu będziesz kontynuować przygotowanie danych do trenowania modelu. Po utworzeniu tablic zdań i kolejnych znaków musisz przekształcić je na wartości liczbowe, które można wykorzystać w modelu.
Ten krok jest niezbędny, ponieważ modele RNN operują wyłącznie na liczbach, a nie na ciągach znaków. Utworzysz tablice numeryczne, które zawierają zera lub jedynki na pozycjach odpowiadających znakom obecnym w zdaniach. Jedynki (lub True) oznaczają, że dany znak jest obecny, natomiast zera (lub False) wskazują na jego brak na danej pozycji w zdaniu.
Zmienne sentences, next_char, n_vocab, chars_window, num_seqs (liczba zdań w danych treningowych) są już wczytane do środowiska, podobnie jak numpy pod aliasem np.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Utwórz
np.array()wypełnioną zerami o kształcie(liczba zdań, okno znaków, rozmiar słownika). - Użyj słownika
char_to_index, aby ustawić pozycję bieżącego znaku na1. - Ustaw bieżący następny znak na
1. - Wyświetl pierwszą pozycję każdej tablicy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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")