1. Nauka
  2. /
  3. Kursy
  4. /
  5. Tłumaczenie maszynowe z Keras

Connected

ćwiczenie

Definiowanie enkodera

W tym ćwiczeniu zrobisz pierwszy krok w stronę stworzenia modelu tłumaczenia maszynowego: zaimplementujesz enkoder. Enkoder, który tu zbudujesz, jest znacznie prostszy niż modele stosowane w rzeczywistych aplikacjach, takich jak Google Translate. Nie martw się jednak – mimo swojej prostoty opiera się na tych samych koncepcjach co złożone modele produkcyjne. Do oznaczania elementów enkodera będziemy używać przedrostka en (np. en_gru), a do elementów dekodera – przedrostka de (np. de_gru).

Zauważysz, że wartość en_vocab ustawiono na 150 – mniej niż rzeczywista wartość 228, którą wcześniej znaleźliśmy. Zmniejszenie słownika ogranicza zapotrzebowanie modelu na pamięć. Nieznaczne okrojenie słownika jest jak najbardziej dopuszczalne, ponieważ usuwa się jedynie najrzadziej występujące słowa. W zadaniach tłumaczenia maszynowego rzadkie słowa mają zwykle mniejsze znaczenie niż te pospolite.

Instrukcje

100 XP
  • Zdefiniuj warstwę Input dla wejścia o rozmiarze słownika en_vocab i długości sekwencji en_len, używając argumentu shape.
  • Zdefiniuj warstwę keras.layers.GRU z hsize jednostkami ukrytymi, która zwraca swój stan.
  • Pobierz wyjścia z warstwy GRU, przekazując do niej en_inputs, a następnie przypisz stan GRU do zmiennej en_state, a wyjście do zmiennej en_out.
  • Zdefiniuj model keras.models.Model, którego wejściem jest en_inputs, a wyjściem – en_state, po czym wyświetl podsumowanie modelu.