Как я могу объединить результаты стратегии в Tensorflow 2 - PullRequest
1 голос
/ 25 марта 2020

Я пытаюсь использовать стратегию в Tensorflow. Я знаю, как получить суммирование и среднее значение результата для каждой реплики. Однако, если результатом каждой реплики является массив, как я могу объединить эти массивы из каждой реплики в один массив?

Ниже приведен код для получения потерь:

    # val
    def distributed_val(ds):
        total_loss = tf.cast(0.0, tf.float32)
        num_train_batches = tf.cast(0.0, tf.float32)

        for one_batch in ds:

            per_replica_loss = strategy.experimental_run_v2(
                self.loss, args=(one_batch,))

            total_loss += strategy.reduce(
                tf.distribute.ReduceOp.SUM, per_replica_loss, axis=None)

            num_train_batches += 1

        return total_loss, num_train_batches

Я использовал функция Strategy.reduce () для получения суммы потерь.

Если per_replica_loss является массивом, как я могу объединить эти массивы в один массив.

Большое спасибо.

...