Стремительное выполнение в TensorFlow — это режим, который позволяет более интуитивно и интерактивно разрабатывать модели машинного обучения. Это особенно полезно на этапах прототипирования и отладки разработки модели. В TensorFlow активное выполнение — это способ немедленного выполнения операций для возврата конкретных значений, в отличие от традиционного выполнения на основе графа, когда операции добавляются в граф вычислений и выполняются позже.
Нетерпеливое выполнение не мешает распределенной функциональности TensorFlow. TensorFlow был разработан для поддержки распределенных вычислений на нескольких устройствах и серверах, и эта функциональность по-прежнему доступна при использовании быстрого выполнения. Фактически, стратегии распространения TensorFlow могут быть легко интегрированы с быстрым выполнением для обучения моделей на нескольких устройствах или серверах.
При работе с распределенным TensorFlow в активном режиме вы можете использовать такие стратегии, как tf.distribute.MirroredStrategy для эффективного использования нескольких графических процессоров на одной машине или tf.distribute.MultiWorkerMirroredStrategy для обучения моделей на нескольких машинах. Эти стратегии распределения справляются со сложностями распределенных вычислений, такими как связь между устройствами, синхронизация градиентов и агрегирование результатов.
Например, если у вас есть модель, которую вы хотите обучить на нескольких графических процессорах с использованием быстрого выполнения, вы можете создать объект MirroredStrategy, а затем запустить цикл обучения в рамках этой стратегии. Это автоматически распределит вычисления по доступным графическим процессорам и объединит градиенты для обновления параметров модели.
python import tensorflow as tf strategy = tf.distribute.MirroredStrategy() with strategy.scope(): # Define and compile your model model = tf.keras.Sequential([...]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Train your model model.fit(train_dataset, epochs=5)
В этом примере MirroredStrategy используется для распределения модели по нескольким графическим процессорам для обучения. Контекстный менеджерstrategy.scope() гарантирует, что модель реплицируется на каждом графическом процессоре, а градиенты агрегируются перед обновлением параметров модели.
Усердное выполнение в TensorFlow не мешает распределенной функциональности фреймворка. Вместо этого он обеспечивает более интерактивный и интуитивно понятный способ разработки моделей машинного обучения, при этом позволяя эффективно распределять обучение на нескольких устройствах или серверах.
Другие недавние вопросы и ответы, касающиеся Развитие машинного обучения:
- Если ядро разветвляется с данными, а оригинал является закрытым, может ли разветвленная версия быть общедоступной, и если да, не является ли это нарушением конфиденциальности?
- Каковы ограничения при работе с большими наборами данных в машинном обучении?
- Может ли машинное обучение оказать некоторую диалогическую помощь?
- Что такое игровая площадка TensorFlow?
- Можно ли использовать облачные решения Google для отделения вычислений от хранилища для более эффективного обучения модели машинного обучения на больших данных?
- Предлагает ли Google Cloud Machine Learning Engine (CMLE) автоматическое получение и настройку ресурсов, а также обеспечивает отключение ресурсов после завершения обучения модели?
- Можно ли без проблем обучать модели машинного обучения на произвольно больших наборах данных?
- При использовании CMLE требует ли создание версии указания источника экспортируемой модели?
- Может ли CMLE считывать данные из хранилища Google Cloud и использовать указанную обученную модель для вывода?
- Можно ли использовать Tensorflow для обучения и вывода глубоких нейронных сетей (DNN)?
Посмотреть больше вопросов и ответов в Продвижение в машинном обучении