tf.VariableAggregation
Указывает, как будет агрегироваться распределённая переменная.
tf.distribute.Strategy распределяет модель, создавая несколько копий (называемых «репликами»), которые обрабатывают разные элементы входного пакета в модели с параллелизмом по данным. При выполнении в модели некоторых операций обновления переменных, например var.assign_add(x), необходимо определить, как объединить различные значения x, вычисленные в разных репликах.
-
NONE: Это значение используется по умолчанию; при использовании операции обновления переменной с несколькими репликами возникает ошибка. -
SUM: Суммировать обновления по всем репликам. -
MEAN: Вычислить среднее арифметическое («среднее») обновлений по всем репликам. -
ONLY_FIRST_REPLICA: Используется, когда каждая реплика выполняет одно и то же обновление, но нам нужно выполнить его только один раз. Например, применяется для глобального счётчика шагов.
Например:
strategy = tf.distribute.MirroredStrategy(["GPU:0", "GPU:1"])
with strategy.scope():
v = tf.Variable(5.0, aggregation=tf.VariableAggregation.MEAN)
@tf.function
def update_fn():
return v.assign_add(1.0)
strategy.run(update_fn)
PerReplica:{
0: <tf.Tensor: shape=(), dtype=float32, numpy=6.0>,
1: <tf.Tensor: shape=(), dtype=float32, numpy=6.0>
}| Переменные класса | |
|---|---|
| MEAN | <VariableAggregationV2.MEAN: 2> |
| NONE | <VariableAggregationV2.NONE: 0> |
| ONLY_FIRST_REPLICA | <VariableAggregationV2.ONLY_FIRST_REPLICA: 3> |
| SUM | <VariableAggregationV2.SUM: 1> |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/VariableAggregation