開始使用免費開始

嘗試更寬的網路

現在你已經具備動手嘗試不同模型所需的一切!

名為 model_1 的模型已經預先載入。你可以在 IPython Shell 中看到此模型的摘要。這是一個相對小的網路,每個隱藏層只有 10 個單元。

在這個練習中,你將建立一個名為 model_2 的新模型,它與 model_1 類似,但每個隱藏層有 100 個單元。

當你建立 model_2 之後,兩個模型都會被擬合,並顯示一張圖,呈現每個 epoch 的損失分數。我們在擬合指令中加入了 verbose=False 參數,以減少列印更新,因為你會用圖形而非文字來查看結果。

由於要同時擬合兩個模型,按下執行後需要等一下才會看到輸出,請耐心等候。

本練習屬於課程

Python 深度學習入門

檢視課程

練習說明

  • 建立 model_2,使其與 model_1 相同,但將你用 'relu' 活化函式加入的前兩個 Dense 層節點數由 10 改為 100。輸出層使用 Dense 且節點數為 2activation 設為 'softmax'
  • 如同先前的模型一樣編譯 model_2optimizer'adam'loss'categorical_crossentropy'metrics=['accuracy']
  • 按下「Submit Answer」以擬合兩個模型並視覺化哪一個表現較好!注意 model.fit() 中的關鍵字引數 verbose=False:這會減少列印的更新,因為你將以圖形方式而非文字來評估模型。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience=2)

# Create the new model: model_2
model_2 = ____

# Add the first and second layers
____.____(____(____, ____=____, input_shape=input_shape))
____

# Add the output layer
____

# Compile model_2
____

# Fit model_1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Fit model_2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)

# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()
編輯並執行程式碼