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
Hướng dẫn bài tập
- Xác định một mô hình gọi là
model_2giốngmodel_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ị.
- Dùng
- Biên dịch
model_2như các mô hình trước: dùng'adam'làmoptimizer,'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()