Začněte nyníZačněte zdarma

Rozdělení dat na trénovací a validační sadu

Jak už víš, trénování modelu pouze na trénovacích datech bez validační sady vede k problému zvanému overfitting (přetrénování). Při overfittingu model sice velmi dobře předpovídá výsledky pro trénovací vstupy, ale na nových, dosud neviděných datech si vede velmi špatně. Takový model pak není příliš užitečný, protože nedokáže zobecňovat. Tomuto problému se dá předejít použitím validační sady.

V tomto cvičení vytvoříš trénovací a validační sadu z dostupného datasetu (tedy en_text obsahujícího 1 000 anglických vět a fr_text obsahujícího 1 000 francouzských vět). Na trénovací data použiješ 80 % datasetu a na validační data zbývajících 20 %.

Toto cvičení je součástí kurzu

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Pomocí np.arange() definuj posloupnost indexů začínající od 0 o velikosti odpovídající délce en_text.
  • Definuj valid_inds jako posledních valid_size indexů z této posloupnosti.
  • Definuj tr_en a tf_fr, které budou obsahovat věty na indexech train_inds ze seznamů en_text a fr_text.
  • Definuj v_en a v_fr, které budou obsahovat věty na indexech valid_inds ze seznamů en_text a fr_text.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

train_size, valid_size = 800, 200
# Define a sequence of indices from 0 to len(en_text)
inds = ____.____(len(_____))
np.random.shuffle(inds)
train_inds = inds[:train_size]
# Define valid_inds: last valid_size indices
valid_inds = inds[____]
# Define tr_en (train EN sentences) and tr_fr (train FR sentences)
tr_en = [en_text[____] for ti in ____]
tr_fr = [____ for ti in ____]
# Define v_en (valid EN sentences) and v_fr (valid FR sentences)
v_en = [____ for vi in valid_inds]
v_fr = [____ for vi in ____]
print('Training (EN):\n', tr_en[:3], '\nTraining (FR):\n', tr_fr[:3])
print('\nValid (EN):\n', v_en[:3], '\nValid (FR):\n', v_fr[:3])
Upravit a spustit kód