Как построить сводную гистограмму для дельта-веса в Federated Tensorflow? - PullRequest
1 голос
/ 18 февраля 2020

Я анализирую метод, который я реализовал в Tensorflow, объединенном с FedAvg. Мне нужно иметь гистограмму для дельта-весов каждого клиента, которые передаются на сервер. Каждый клиент отдельно вызывается в simulation/federated_avaraging.py, но дело в том, что я не могу вызвать следующий API там. tf.summary.histogram(). любая помощь будет оценена.

1 Ответ

1 голос
/ 21 февраля 2020

В TFF TensorFlow представляет «локальные вычисления»; поэтому, если вам нужен способ проверки чего-либо на клиентах, вам необходимо сначала объединить нужные значения через TFF или проверить возвращенные значения в нативном python.

Если вы Если вы хотите использовать операции TF, я бы порекомендовал использовать tff.federated_collect intrinsi c, чтобы «собрать» все значения, которые вы хотите на сервере, затем federated_map функцию TF, которая принимает эти значения и создает желаемую визуализацию.

Если вы предпочитаете работать на уровне Python, здесь есть простой вариант (такой подход я бы выбрал): просто вернуть результаты обучения у клиентов от вашего tff.federated_computation; когда вы вызываете это вычисление, это материализует список Python этих результатов, и вы можете визуализировать его по своему усмотрению. Это будет примерно так:

@tff.federated_computation(...)
def train_one_round(...):
  ...
  trained_clients = run_training(...)
  new_model = update_global_model(trained_clients,...)
  return new_model, trained_clients

В этом примере эта функция вернет кортеж, вторым элементом которого является список Python, представляющий результаты обучения на всех клиентах. .

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