написание функции агрегирования тензорного потока (например, tff.federated_mean) - PullRequest
0 голосов
/ 11 июля 2019

Я пытался написать пользовательскую функцию агрегирования для федеративного усреднения.замена 'federated_mean' кажется очень сложной, и код очень трудно расшифровать.Есть ли документация / примеры об этих "внутренностях"?(так называется в коде)

Спасибо!

1 Ответ

2 голосов
/ 11 июля 2019

Спасибо за ваш интерес к TFF!

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

Однако для реализации пользовательских агрегаций мы предоставляем tff.federated_aggregate встроенную, обобщенную функцию иерархического агрегирования, которая принимает пять параметров:

  • Значение типа {T}@Cобъединяемый набор данных.
  • Ноль типа U, представляющий ноль в алгебре редукции.
  • Accumulate, функция типа <U,T> -> U, которая будет использоватьсяпоточечно уменьшить федеративный набор данных.Накапливать материализует набор значений типа U на промежуточном уровне иерархии.
  • Слияние, функция типа <U,U> -> U, используемая способом, аналогичным накапливать, за исключением теперь материализации одного значениявведите U на верхнем уровне иерархии.
  • Отчет, функция типа U -> R, используемая для выполнения любого окончательного вычисления агрегированных значений.Например, интегрированное среднее значение может быть реализовано путем накопления и слияния сумм значений, а также подсчета количества клиентов и последующего деления суммы на счет в шаге отчета.

Результатом вызова объединенного агрегата с этими пятью параметрами является значение типа R@S.

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

Надеюсь, это поможет!

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