我正在尝试编写一个用于联合平均的自定义聚合函数。替换“federated_mean”似乎非常复杂,代码也很难破译。有没有关于这些“内部机制”的文档/例子?(在代码中以这种方式调用)
谢谢!
发布于 2019-07-12 01:56:57
感谢您对TFF的关注!
从长远来看,我们肯定计划以一种简单的方式公开编写用户定义的内部函数的能力,但我们还没有完全做到这一点。
但是,为了实现自定义聚合,我们提供了tff.federated_aggregate内部函数,这是一个带有五个参数的通用分层聚合函数:
表示aggregated.
{T}@C,联邦数据集的类型为U,该值将用于逐点缩减联邦数据集。累加在hierarchy.U类型的值<U,U> -> U类型的函数,其使用方式类似于累加,除了现在在hierarchy.U类型的单个值U -> R类型的函数,用于对聚合值执行任何最终计算。例如,可以通过累加和合并值的总和以及客户端数量的计数,然后在报告步骤中将总和除以计数来实现联合平均值。使用这五个参数调用联邦聚合的结果是一个R@S类型的值。
上面链接的文档对federated_aggregate本身进行了进一步的讨论。有关如何使用它来编写新聚合的示例,请查看实现federated_min和federated_max的this commit。
希望这能有所帮助!
https://stackoverflow.com/questions/56989980
复制相似问题