Zacznij terazZacznij za darmo

Przetwarzanie danych

Teraz musisz przetworzyć dane dla nowego modelu, który przyjmuje dwa wejścia i generuje jedno wyjście. Dwa wejścia to zakodowane metodą one-hot angielskie słowa oraz zakodowane metodą one-hot francuskie słowa z pominięciem ostatniego słowa.

Wyjściem są zakodowane metodą one-hot francuskie słowa z pominięciem pierwszego słowa. Innymi słowy, w dekoderze każde wejściowe słowo francuskie ma przypisane wyjście – jest nim następne słowo. Tutaj nauczysz się, jak to zaimplementować.

Masz dostęp do funkcji sents2seqs() oraz zmiennych en_text i fr_text.

To ćwiczenie jest częścią kursu

Tłumaczenie maszynowe z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz wsad danych wejściowych enkodera (od i do i+bsize), korzystając z funkcji sents2seqs() (zakodowanych metodą one-hot i odwróconych).
  • Pobierz wsad danych wejściowych i wyjściowych dekodera (od i do i+bsize), korzystając z funkcji sents2seqs() (zakodowanych metodą one-hot).
  • Wyodrębnij dane wejściowe dekodera (wszystkie słowa francuskie z wyjątkiem ostatniego) z de_xy, wycinając odpowiedni fragment na wymiarze czasowym.
  • Wyodrębnij dane wyjściowe dekodera (wszystkie słowa francuskie z wyjątkiem pierwszego) z de_xy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

bsize = 250
for i in range(0, len(en_text), bsize):
  # Get the encoder inputs using the sents2seqs() function
  en_x = ____('source', ____[____:____], onehot=True, reverse=____)
  # Get the decoder inputs/outputs using the sents2seqs() function
  de_xy = sents2seqs('target', ____[____:____], onehot=True)
  # Separate the decoder inputs from de_xy
  de_x = de_xy[:,____,:]
  # Separate the decoder outputs from de_xy
  de_y = de_xy[:,____,:]
  
  print("Data from ", i, " to ", i+bsize)
  print("\tnp.argmax() => en_x[0]: ", np.argmax(en_x[0], axis=-1))
  print("\tnp.argmax() => de_x[0]: ", np.argmax(de_x[0], axis=-1))
  print("\tnp.argmax() => de_y[0]: ", np.argmax(de_y[0], axis=-1))
Edytuj i uruchom kod