Trenowanie modelu
Czy wiesz, że w 2017 roku Google Translate obsługiwał ponad 500 milionów użytkowników dziennie?
Teraz wytrenojesz swój pierwszy model z Teacher Forcing. Teacher Forcing jest powszechnie stosowany w modelach sekwencja-sekwencja, takich jak neuronowy translator maszynowy, aby osiągnąć lepszą wydajność.
Do dyspozycji masz funkcję sents2seqs(), angielskie zdania en_text oraz francuskie zdania fr_text.
To ćwiczenie jest częścią kursu
Tłumaczenie maszynowe z Keras
Instrukcje do ćwiczenia
- Pobierz dane wejściowe dekodera, które zawierają sekwencje zakodowane metodą one-hot dla francuskich słów (z wyjątkiem ostatniego słowa w każdej sekwencji).
- Pobierz dane wyjściowe dekodera, które zawierają sekwencje zakodowane metodą one-hot dla francuskich słów (z wyjątkiem pierwszego słowa w każdej sekwencji).
- Wytrenuj model na pojedynczej partii danych.
- Wyznacz metryki ewaluacyjne (stratę i dokładność) dla danych treningowych
en_x,de_xide_y.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,data_size,bsize):
en_x = sents2seqs('source', en_text[i:i+bsize], onehot=True, reverse=True)
de_xy = sents2seqs('target', fr_text[i:i+bsize], onehot=True)
# Separate the decoder inputs from de_xy
de_x = ____[:,____,:]
# Separate the decoder outputs from de_xy
de_y = ____[____]
# Train the model on a single batch of data
nmt_tf.____([____,____], ____)
# Obtain the eval metrics for the training data
res = _____.evaluate([____,____], ____, batch_size=bsize, verbose=0)
print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))