Изменение параметров оптимизации
Пора применить знания об оптимизации на практике. Вы попробуете обучить модель с очень маленькой скоростью обучения, очень большой и «оптимальной». Обратите внимание на результаты после выполнения упражнения — помните, что чем меньше значение функции потерь, тем лучше.
Для этих упражнений мы заранее загрузили предикторы и целевые значения из ваших предыдущих моделей классификации (предсказание выживаемости пассажиров «Титаника»). Чтобы корректно сравнить разные скорости обучения, оптимизация должна каждый раз начинаться с нуля. Для этого мы создали функцию get_new_model(), которая возвращает необученную модель.
Это упражнение является частью курса
Введение в глубокое обучение на 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
____