Использует model.compile () go внутри MirroredStrategy - PullRequest
0 голосов
/ 11 июля 2020

У меня есть сеть для трансферного обучения, и я хочу тренироваться на двух GPU. Я только что тренировался на одном до этого момента и ищу способы ускорить его. Я получаю противоречивые ответы о том, как использовать его наиболее эффективно. все должно быть вложено внутрь strategy.scope()?

Этот учебник показывает compile внутри, но этот учебник показывает, что он находится снаружи. Первый показывает его снаружи

mirrored_strategy = tf.distribute.MirroredStrategy()

with mirrored_strategy.scope():
  model = tf.keras.Sequential([tf.keras.layers.Dense(1, input_shape=(1,))])

model.compile(loss='mse', optimizer='sgd')

, но говорит это сразу после

. В этом примере мы использовали MirroredStrategy, поэтому мы можем запустить это на машине с несколькими графическими процессорами. strategy.scope () указывает Keras, какую стратегию использовать для распространения обучения. Создание моделей / оптимизаторов / показателей внутри этой области позволяет нам создавать распределенные переменные вместо обычных переменных. После того, как это настроено, вы можете соответствовать своей модели, как обычно. MirroredStrategy заботится о воспроизведении обучения модели на доступных графических процессорах, агрегировании градиентов и многом другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...