開始使用免費開始

我們需要更多資料嗎?

現在要來檢查你所建置的 digits 資料集 model,是否能從更多訓練樣本中受益!

為了精簡程式碼,以下內容都已初始化並可直接使用:

  • 你剛建好的 model
  • X_trainy_trainX_testy_test
  • 你的模型以 model.get_weights() 取得並儲存的 initial_weights
  • 一個預先定義的訓練資料比例列表:training_sizes
  • 一個預先定義、監控 loss 的提早停止回呼:early_stop
  • 兩個用來儲存評估結果的空清單:train_accstest_accs

請在不同的訓練資料比例上訓練模型,並在 X_test 上評估結果。 最後使用 plot_results() 繪製結果。

本練習的完整程式碼可在投影片中找到!

本練習屬於課程

Keras 深度學習入門

檢視課程

練習說明

  • 依照迴圈中目前評估的 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(____, ____)
編輯並執行程式碼