Definiowanie warstw modelu z Teacher Forcing
Zdefiniujesz ulepszoną wersję modelu tłumaczenia maszynowego, który tworzyłeś wcześniej. Czy wiesz, że modele takie jak Google Translator korzystają z techniki Teacher Forcing podczas trenowania?
Jak już wiesz, poprzedni model wymaga niewielkich zmian, aby zastosować Teacher Forcing. W tym ćwiczeniu wprowadzisz niezbędne modyfikacje. Masz do dyspozycji parametry językowe: en_len i fr_len (długość uzupełnionych sekwencji angielskiej i francuskiej), en_vocab i fr_vocab (rozmiar słownictwa zbioru angielskiego i francuskiego) oraz hsize (rozmiar warstwy ukrytej warstw GRU). Pamiętaj, że dekoder przyjmuje sekwencję francuską krótszą o jeden element od fr_len. Przedrostka en używamy dla elementów enkodera, a de – dla elementów dekodera.
To ćwiczenie jest częścią kursu
Tłumaczenie maszynowe z Keras
Instrukcje do ćwiczenia
- Zaimportuj submoduł
layersz bibliotekitensorflow.keras. - Pobierz wyjście enkodera i wartości stanu, przypisując je odpowiednio do
en_outien_state. - Zdefiniuj warstwę
Inputdekodera przyjmującą sekwencję o długościfr_len-1złożoną z zakodowanych metodą one-hot słów francuskich. - Zdefiniuj warstwę
TimeDistributedDensez aktywacją softmax ifr_vocabwęzłami.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import the layers submodule from keras
import ____.____.____ as layers
en_inputs = layers.Input(shape=(en_len, en_vocab))
en_gru = layers.GRU(hsize, return_state=True)
# Get the encoder output and state
____, ____ = en_gru(____)
# Define the decoder input layer
de_inputs = layers.____(shape=(____, ____))
de_gru = layers.GRU(hsize, return_sequences=True)
de_out = de_gru(de_inputs, initial_state=en_state)
# Define a TimeDistributed Dense softmax layer with fr_vocab nodes
de_dense = layers.____(____.____(____, activation=____))
de_pred = de_dense(de_out)