Bắt đầu ngayBắt đầu miễn phí

Thêm lớp vào mạng nơ-ron

Bạn đã thấy cách thử nghiệm với các mạng rộng hơn. Trong bài này, bạn sẽ thử một mạng sâu hơn (nhiều lớp ẩn hơn).

Một lần nữa, bạn có một mô hình chuẩn gọi là model_1 để bắt đầu. Mô hình này có 1 lớp ẩn với 10 đơn vị. Bạn có thể xem phần tóm tắt cấu trúc của mô hình đó được in ra. Bạn sẽ tạo một mạng tương tự nhưng có 3 lớp ẩn (vẫn giữ 10 đơn vị ở mỗi lớp).

Việc huấn luyện cả hai mô hình sẽ mất một chút thời gian, nên bạn cần đợi vài giây để xem kết quả sau khi chạy mã.

Bài tập này là một phần của khóa học

Nhập môn Deep Learning với Python

Xem khóa học

Hướng dẫn bài tập

  • Xác định một mô hình gọi là model_2 giống model_1, nhưng có 3 lớp ẩn với 10 đơn vị thay vì chỉ 1 lớp ẩn.
    • Dùng input_shape để chỉ định dạng đầu vào ở lớp ẩn đầu tiên.
    • Dùng hàm kích hoạt 'relu' cho 3 lớp ẩn và 'softmax' cho lớp đầu ra, lớp này nên có 2 đơn vị.
  • Biên dịch model_2 như các mô hình trước: dùng 'adam' làm optimizer, 'categorical_crossentropy' cho loss, và metrics=['accuracy'].
  • Nhấn 'Gửi câu trả lời' để huấn luyện cả hai mô hình và trực quan hóa mô hình nào cho kết quả tốt hơn!

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()
Chỉnh sửa và Chạy Mã