0

我试图为联合平均编写一个自定义聚合函数。替换“federated_mean”似乎非常复杂,而且代码很难破译。是否有关于这些“内在”的任何文档/示例?(在代码中这样调用)

谢谢!

4

1 回答 1

2

感谢您对 TFF 的关注!

从长远来看,我们肯定计划公开以一种简单的方式编写用户定义的内在函数的能力,但我们还没有完全做到。

然而,为了实现自定义聚合,我们提供了tff.federated_aggregate内在的、通用的层次聚合函数,它接受五个参数:

  • 值,类型{T}@C,要聚合的联合数据集。
  • 零,类型为U,表示归约代数中的零。
  • Accumulate,一个类型的函数<U,T> -> U,将用于逐点减少联合数据集。UAccumulate在层次结构的中间级别实现了一组类型值。
  • Merge 是 type 的一个函数<U,U> -> U,其使用方式类似于累积,除了现在U在层次结构的顶层实现单个 type 值。
  • 报告,类型的函数U -> R,用于对聚合值执行任何最终计算。例如,可以通过累积和合并值的总和以及客户端数量的计数,然后将总和除以报告步骤中的计数来实现联合平均值。

使用这五个参数调用联合聚合的结果是 type 的值R@S

上面链接的文档对其自身进行了进一步的讨论federated_aggregate。有关如何使用它来编写新聚合的示例,请查看此提交实现federated_minfederated_max.

希望这可以帮助!

于 2019-07-11T17:56:56.820 回答