Метод scope класса MirroredStrategy
Метод scope класса MirroredStrategy создает контекстный менеджер, внутри которого операции выполняются на всех репликах распределенной стратегии. Метод применяется к экземпляру стратегии и не принимает обязательных параметров. При входе в контекст создается область видимости, в которой переменные и операции реплицируются на все устройства, указанные при создании стратегии.
Внутри контекста scope можно создавать переменные, слои и модели, которые будут автоматически размещены на всех доступных устройствах. Метод возвращает контекстный менеджер, который используется совместно с оператором with.
Синтаксис
strategy.scope()
Пример
Давайте создадим стратегию MirroredStrategy и войдем в ее контекст scope, чтобы создать простую модель:
import tensorflow as tf
strategy = tf.distribute.MirroredStrategy()
with strategy.scope():
model = tf.keras.Sequential([
tf.keras.layers.Dense(5, input_shape=(3,))
])
print(model.weights[0].shape)
Результат выполнения кода:
(3, 5)
Пример
Давайте создадим переменную внутри контекста scope и проверим ее тип:
Результат выполнения кода:
<class 'tensorflow.python.distribute.values.MirroredVariable'>
[1 2 3 4 5]
Смотрите также
-
класс
MirroredStrategy,
который реализует синхронное распределенное обучение -
метод
run,
который выполняет функцию на каждой реплике стратегии -
метод
reduce,
который объединяет значения с разных реплик -
метод
experimental_distribute_dataset,
который распределяет датасет между репликами