Шаг 85.
Глубокое обучение на Python. ... . Анатомия нейронной сети: знакомство с основами Keras. Этап "компиляции": настройка процесса обучения

    На этом шаге мы рассмотрим возможности по настройке процесса обучения.

    После того как вы определились с архитектурой сети, нужно выбрать еще три параметра:

    После выбора функции потерь, оптимизатора и метрик можно использовать встроенные методы compile() и fit(), чтобы начать обучение модели. При желании можно также реализовать собственные циклы обучения - мы позже расскажем, как это сделать. Пока же давайте взглянем на compile() и fit(). Метод compile() настраивает процесс обучения - вы уже познакомились с ним в самом первом примере нейронной сети на 26 шаге. Он принимает аргументы с оптимизатором, функцией потерь и метриками (в виде списка):

model = keras.Sequential([keras.layers.Dense(1)])    #  Определение линейного классификатора
    model.compile(optimizer="rmsprop",               #  Определение оптимизатора по имени: 
                                                     #  RMSprop (регистр имеет значение)
    loss="mean_squared_error",                       #  Определение функции по имени: 
                                                     #  среднеквадратичная ошибка 
    metrics=["accuracy"])                            #  Определение списка метрик: 
                                                     #  в данном случае только 
                                                     #  accuracy (точность)

    В этом примере методу compile() оптимизатор, функция потерь и список метрик передаются в виде строковых имен (например, "rmsprop"). В действительности данные строки являются ярлыками, преобразующимися в объекты Python. Например, "rmsprop" превращается в keras.optimizers.RMSprop(). Важно помнить, что вместо строк можно также передать экземпляры объектов, например:

model.compile(optimizer=keras.optimizers.RMSprop(),
    loss=keras.losses.MeanSquaredError(),
    metrics=[keras.metrics.BinaryAccuracy()])

Это удобно тем, кто хочет использовать собственные функции потерь или метрики или желает выполнить дополнительную настройку применяемых объектов, например передать аргумент learning_rate оптимизатору:

model.compile(optimizer=keras.optimizers.RMSprop(learning_rate=1e-4),
    loss=my_custom_loss,
    metrics=[my_custom_metric_1, my_custom_metric_2])

    Позднее мы рассмотрим, как создавать свои функции потерь и метрики. В общем случае нет необходимости прописывать функции потерь, метрики или оптимизаторы с нуля, поскольку Keras предлагает широкий спектр встроенных опций, среди которых наверняка найдется то, что вам нужно:

    Далее вы увидите многие из этих вариантов в действии.

    На следующем шаге мы рассмотрим выбор функции потерь.




Предыдущий шаг Содержание Следующий шаг