Thay đổi tham số tối ưu hóa
Đến lúc bạn thực hành tối ưu hóa. Bạn sẽ thử tối ưu hóa một mô hình với learning rate rất thấp, rất cao, và một mức “vừa đủ”. Sau khi chạy xong bài này, hãy xem kết quả và nhớ rằng giá trị nhỏ cho hàm loss là tốt.
Trong các bài này, chúng tôi đã nạp sẵn predictors và target từ mô hình phân loại trước đó của bạn (dự đoán ai sống sót trên Titanic). Bạn sẽ muốn việc tối ưu hóa luôn bắt đầu từ đầu mỗi khi thay đổi learning rate để so sánh công bằng giữa các mức learning rate trong kết quả. Vì vậy, chúng tôi đã tạo hàm get_new_model() để tạo một mô hình chưa được tối ưu hóa cho bạn tối ưu.
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
- Import
SGDtừtensorflow.keras.optimizers. - Tạo một list các learning rate để thử tối ưu, đặt tên là
lr_to_test. Các learning rate gồm.000001,0.01, và1. - Dùng vòng lặp
forđể lặp qualr_to_test:- Dùng hàm
get_new_model()để xây dựng một mô hình mới, chưa được tối ưu hóa. - Tạo một optimizer tên
my_optimizerbằng constructorSGD()với đối số từ khóalr=lr. - Biên dịch (compile) mô hình. Đặt tham số
optimizerlà đối tượng SGD bạn vừa tạo ở trên, và vì đây là bài toán phân loại, dùng'categorical_crossentropy'cho tham sốloss. - Huấn luyện (fit) mô hình với
predictorsvàtarget.
- Dùng hàm
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.
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____