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

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

Xem khóa học

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

  • Import SGD từ 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 qua lr_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_optimizer bằng constructor SGD() với đối số từ khóa lr=lr.
    • Biên dịch (compile) mô hình. Đặt tham số optimizer là đố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 predictorstarget.

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