始める無料で始める

データをもっと増やすべきでしょうか?

作成した digits データセットmodel が、より多くの学習サンプルで性能向上するか確認してみましょう!

コード量を最小限にするため、次のものはすでに初期化済みで利用できます。

  • 先ほど作成した model
  • X_trainy_trainX_testy_test
  • model.get_weights() で保存したモデルの初期重み initial_weights
  • 事前定義された学習サイズのリスト training_sizes
  • loss を監視する事前定義の EarlyStopping コールバック early_stop
  • 評価結果を格納する空リスト train_accstest_accs

異なる学習サイズでモデルを学習し、X_test で結果を評価してください。 最後に plot_results() で結果をプロットします。

この演習の完全なコードはスライドにあります!

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

Kerasで学ぶIntroduction to Deep Learning

コースを見る

演習の手順

  • ループ内で現在評価中の size に従って、学習データの一部を取得します。
  • set_weights() でモデルの重みを initial_weights に戻し、取得した学習データの一部で学習します。コールバックとして early_stop を使用します。
  • 学習データの一部とテストデータのそれぞれについて、精度を評価して保存します。
  • 各学習サイズに対する学習・テスト精度を渡して plot_results() を呼び出します。

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

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

for size in training_sizes:
  	# Get a fraction of training data (we only care about the training data)
    X_train_frac, y_train_frac = X_train[:size], y_train[:size]

    # Reset the model to the initial weights and train it on the new training data fraction
    model.set_weights(____)
    model.fit(X_train_frac, y_train_frac, epochs = 50, callbacks = [early_stop])

    # Evaluate and store both: the training data fraction and the complete test set results
    train_accs.append(model.evaluate(____, ____)[1])
    test_accs.append(model.evaluate(____, ____)[1])
    
# Plot train vs test accuracies
plot_results(____, ____)
コードを編集して実行