Aan de slagGa gratis aan de slag

Trainings- en validatiegegevens splitsen

Je gaat trainings- en validatiegegevenssets maken. Een validatieset bijhouden en de prestaties van het model daarop volgen is een goede gewoonte om overfitting te voorkomen.

Voor deze oefening krijg je en_text (Engelse zinnen) en fr_text (Franse zinnen).

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Definieer een reeks indexen met np.arange() die begint bij 0 en de grootte heeft van en_text.
  • Definieer train_inds als de eerste train_size indexen uit deze reeks.
  • Definieer tr_en en tf_fr, die de zinnen bevatten op de indexen gespecificeerd door train_inds in de lijsten en_text en fr_text.
  • Definieer v_en en v_fr, die de zinnen bevatten op de indexen gespecificeerd door valid_inds in de lijsten en_text en fr_text.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

train_size, valid_size = 800, 200
# Define a sequence of indices from 0 to size of en_text
inds = np.____(len(____))
np.random.shuffle(inds)
# Define train_inds as first train_size indices
train_inds = inds[:____]
valid_inds = inds[train_size:train_size+valid_size]
# Define tr_en (train EN sentences) and tr_fr (train FR sentences)
tr_en = [en_text[ti] for ti in ____]
tr_fr = [____[____] for ti in ____]
# Define v_en (valid EN sentences) and v_fr (valid FR sentences)
v_en = [en_text[____] for vi in ____]
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])
Code bewerken en uitvoeren