Thử nghiệm với mạng rộng hơn
Giờ bạn đã có đủ kiến thức để bắt đầu thử nghiệm với các mô hình khác nhau!
Một mô hình tên model_1 đã được nạp sẵn. Bạn có thể xem tóm tắt mô hình này được in trong IPython Shell. Đây là một mạng tương đối nhỏ, chỉ có 10 đơn vị ở mỗi lớp ẩn.
Trong bài tập này, bạn sẽ tạo một mô hình mới tên model_2, tương tự model_1 nhưng có 100 đơn vị ở mỗi lớp ẩn.
Sau khi bạn tạo model_2, cả hai mô hình sẽ được huấn luyện và một biểu đồ hiển thị điểm loss của cả hai mô hình ở mỗi epoch sẽ được vẽ. Chúng tôi đã thêm đối số verbose=False trong lệnh huấn luyện để in ít thông tin cập nhật hơn, vì bạn sẽ xem các thông tin này dưới dạng đồ thị thay vì văn bản.
Vì bạn đang huấn luyện hai mô hình, sẽ mất một chút thời gian để thấy Đầu ra sau khi bạn bấm chạy, nên hãy kiên nhẫn.
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
- Tạo
model_2sao cho lặp lạimodel_1, nhưng dùng100nút thay vì10cho hai lớpDenseđầu tiên bạn thêm với kích hoạt'relu'. Dùng2nút cho lớp đầu raDensevớiactivationlà'softmax'. - Biên dịch
model_2giống như bạn đã làm với các mô hình trước: dùng'adam'làmoptimizer,'categorical_crossentropy'cho loss, vàmetrics=['accuracy']. - Bấm "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! Lưu ý đối số từ khóa
verbose=Falsetrongmodel.fit(): Điều này sẽ in ít cập nhật hơn, vì bạn sẽ đánh giá các mô hình bằng đồ thị thay vì qua văn bả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.
# 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()