Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шолле Ф. - Глубокое обучение на Python (Библиотека программиста) - 2023.pdf
Скачиваний:
6
Добавлен:
07.04.2024
Размер:
11.34 Mб
Скачать

528    Глава 13. Методы и приемы для применения на практике

Использование слияния этапов для оптимизации загрузки TPU

Устройства.TPU.обладают.значительной.вычислительной.мощностью,.поэтому. вам.придется.работать.с.очень.большими.пакетами,.чтобы.обеспечить.максимальную.загрузку.ядер.TPU..Для.небольших.моделей.оптимальный.размер.пакета. может.быть.огромным.—.до.10.000.образцов..Соответственно,.необходимо.будет. увеличить.скорость.обучения.оптимизатора;.обновлений.весов.будет.меньше,. но.каждое.обновление.будет.более.точным.(потому.что.градиенты.вычисляются. с.использованием.большего.количества.точек.данных)..Поэтому.желательно. перемещать.веса.на.большую.величину.с.каждым.обновлением.

Тем.не.менее.есть.возможность.сохранить.разумный.размер.пакетов.при.опти- мальной.загрузке.TPU,.прибегнув.к.простому.трюку.—.слиянию этапов..Идея. состоит.в.том,.чтобы.выполнить.несколько.этапов.обучения.за.один.сеанс.выполнения.на.TPU,.то.есть.сделать.больше.работы.между.двумя.операциями. передачи.данных.из.памяти.виртуальной.машины.в.TPU..Для.этого.просто. передайте.аргумент.steps_per_execution .в.вызов.метода.compile(),.например. steps_per_execution=8,.чтобы.выполнить.восемь.этапов.обучения.за.один.сеанс. выполнения.на.TPU..Для.небольших.моделей,.использующих.мощности.TPU. недостаточно.оптимально,.это.может.привести.к.значительному.ускорению.

КРАТКИЕ ИТОГИ ГЛАВЫ

.Для.автоматизации.утомительного.поиска.наилучшей.конфигурации.модели. можно.использовать.настройку.гиперпараметров.и.KerasTuner..Но.помните. об.опасности.переобучения.на.проверочном.наборе.данных!

.Ансамбль.разнообразных.моделей.часто.может.значительно.улучшить.качество.прогнозов.

.Ускорить.обучение.модели.на.GPU.можно,.использовав.прием.обучения. со.смешанной.точностью.—.обычно.он.дает.хороший.прирост.скорости.без. дополнительных.усилий.с.вашей.стороны.

.Для.дальнейшего.масштабирования.рабочих.процессов.можно.применять. стратегию.tf.distribute.MirroredStrategy .и.с.ее.помощью.обучать.модели. на.нескольких.GPU.

.У.вас.даже.есть.возможность.потренироваться.в.обучении.на.устройствах. Google.TPU.(доступны.в.Colab),.применив.стратегию.TPUSTrategy..Если. модель.небольшая,.обязательно.используйте.слияние.этапов.обучения.(настраивается.с.помощью.аргумента.compile(..., steps_per_execution=N)),. чтобы.максимально.загрузить.ядра.TPU.работой.