始める無料で始める

学習用データと検証用データへの分割

学習用データセットと検証用データセットを作成します。検証用データセットを保持し、そのセットでのモデルの性能を監視することは、過学習を避けるためのよいプラクティスです。

この演習では、en_text(英語の文)とfr_text(フランス語の文)が与えられています。

この演習はコースの一部です

Kerasで学ぶMachine Translation

コースを見る

演習の手順

  • np.arange() を使って、0 から始まり en_text のサイズを持つインデックス列を定義します。
  • そのインデックス列の先頭 train_size 個を train_inds として定義します。
  • リスト en_textfr_text から、train_inds で指定された位置の文を取り出し、tr_entf_fr を定義します。
  • リスト en_textfr_text から、valid_inds で指定された位置の文を取り出し、v_env_fr を定義します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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])
コードを編集して実行