Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj submoduł layers z biblioteki tensorflow.keras.
  • Pobierz wyjście enkodera i wartości stanu, przypisując je odpowiednio do en_out i en_state.
  • Zdefiniuj warstwę Input dekodera przyjmującą sekwencję o długości fr_len-1 złożoną z zakodowanych metodą one-hot słów francuskich.
  • Zdefiniuj warstwę TimeDistributed Dense z aktywacją softmax i fr_vocab wę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)
Edytuj i uruchom kod