Зміна параметрів оптимізації
Час попрактикуватися з оптимізацією. Ви спробуєте оптимізувати модель із дуже низькою швидкістю навчання, дуже високою та «саме тією». Після виконання вправи перегляньте результати й пам'ятайте: менше значення функції втрат — краще.
У цих вправах ми заздалегідь підвантажили предиктори та ціль із ваших попередніх моделей класифікації (прогнозування, хто вижив на «Титаніку»). Потрібно щоразу починати оптимізацію з нуля, коли ви змінюєте швидкість навчання, щоб чесно порівняти результати для кожного значення. Тому ми створили функцію get_new_model(), яка повертає не оптимізовану модель для подальшої оптимізації.
Ця вправа є частиною курсу
Вступ до Deep Learning у Python
Інструкції до вправи
- Імпортуйте
SGDзtensorflow.keras.optimizers. - Створіть список швидкостей навчання для перевірки під назвою
lr_to_test. Він має містити значення.000001,0.01і1. - Використайте цикл
for, щоб ітеруватиlr_to_test:- Скористайтеся функцією
get_new_model(), щоб побудувати нову, ще не оптимізовану модель. - Створіть оптимізатор
my_optimizer, використавши конструкторSGD()із параметромlr=lr. - Скомпілюйте модель. Встановіть параметр
optimizerяк об'єкт SGD, створений вище, а оскільки це задача класифікації, для параметраlossвикористайте'categorical_crossentropy'. - Навчіть модель, використовуючи
predictorsіtarget.
- Скористайтеся функцією
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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
____