Early stopping: Tối ưu cách tối ưu hóa
Giờ bạn đã biết cách theo dõi hiệu năng mô hình trong suốt quá trình tối ưu, bạn có thể dùng early stopping để dừng tối ưu khi nó không còn cải thiện nữa. Vì quá trình tối ưu sẽ tự động dừng khi không còn hữu ích, bạn cũng có thể đặt giá trị epochs cao trong lời gọi .fit(), như Dan đã minh họa trong video.
Mô hình bạn sẽ tối ưu đã được tạo sẵn là model. Như trước đây, dữ liệu đã được nạp sẵn dưới dạng predictors và target.
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
EarlyStoppingtừtensorflow.keras.callbacks. - Biên dịch mô hình, tiếp tục dùng
'adam'làmoptimizer,'categorical_crossentropy'làm hàm mất mát, vàmetrics=['accuracy']để xem độ chính xác ở mỗi epoch. - Tạo một đối tượng
EarlyStoppingtênearly_stopping_monitor. Dừng tối ưu khi validation loss không cải thiện trong 2 epoch bằng cách đặt tham sốpatiencecủaEarlyStopping()là2. - Huấn luyện mô hình với
predictorsvàtarget. Đặt sốepochslà30và dùng validation split0.3. Ngoài ra, truyền[early_stopping_monitor]vào tham sốcallbacks.
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 EarlyStopping
____
# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
input_shape = (n_cols,)
# Specify the model
model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))
# Compile the model
____
# Define early_stopping_monitor
early_stopping_monitor = ____
# Fit the model
____