我试图编写一个用于联合平均的自定义聚合函数。替换“ federated_mean”似乎很复杂,并且代码很难解密。是否有关于这些“内在性”的文档/示例? (在代码中这样称呼)
谢谢!
答案 0 :(得分:2)
感谢您对TFF的关注!
从长远来看,我们绝对计划以一种简单的方式来展示编写用户定义的内在函数的能力,但我们还没有完全实现。
但是,为了实现自定义聚合,我们提供了tff.federated_aggregate
内在函数,它是一个通用的分层聚合函数,它具有五个参数:
{T}@C
的值,是要聚合的联合数据集。U
的零,表示归约代数中的零。<U,T> -> U
的函数,将用于逐点缩减联合数据集。累积在层次结构的中间级别实现U
类型的一组值。<U,U> -> U
的函数,用于类似于累加的方式,除了现在在层次结构的顶层实现单个类型为U
的值。U -> R
的函数,用于对汇总值执行任何最终计算。例如,可以通过累加和合并值的总和以及客户数量的计数,然后在报告步骤中将总和除以计数来实现联邦均值。使用这五个参数调用联合聚合的结果是类型为R@S
的值。
上面链接的文档对federated_aggregate
本身进行了进一步的讨论。有关如何使用此示例来编写新聚合的示例,请查看实现federated_min
和federated_max
的{{3}}。
希望这会有所帮助!