開始使用免費開始

為網路新增層

你已經看過如何嘗試更寬的網路。在這個練習中,你要改用更深的網路(更多隱藏層)。

同樣地,你有一個名為 model_1 的基準模型作為起點。它有 1 個隱藏層,包含 10 個單元。你可以看到該模型結構的摘要輸出。你將建立一個相似的網路,但有 3 個隱藏層(每層仍維持 10 個單元)。

再次提醒,訓練兩個模型會花一點時間,所以在你執行程式碼後,需要等幾秒才會看到結果。

本練習屬於課程

Python 深度學習入門

檢視課程

練習說明

  • 建立一個名為 model_2 的模型,其結構類似 model_1,但將隱藏層改為 3 層、每層 10 個單元,而不是只有 1 層。
    • 在第一個隱藏層使用 input_shape 指定輸入形狀。
    • 3 個隱藏層使用 'relu' 啟用函式,輸出層使用 'softmax',且輸出層應有 2 個單元。
  • 以與先前模型相同的方式編譯 model_2optimizer 使用 'adam'loss 使用 'categorical_crossentropy',並設定 metrics=['accuracy']
  • 按下「Submit Answer」來訓練兩個模型並視覺化哪一個效果較佳!

動手互動練習

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

# The input shape to use in the first hidden layer
input_shape = (n_cols,)

# Create the new model: model_2
model_2 = ____

# Add the first, second, and third hidden layers
____
____
____

# Add the output layer
____

# Compile model_2
____

# Fit model 1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)

# Fit model 2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.4, 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()
編輯並執行程式碼