【发布时间】:2021-01-18 10:14:40
【问题描述】:
我想知道创建模型、使用 tensorflow federated 广播它、运行一个循环并收集客户端返回的权重而不用 fedavg 聚合它们的最简单方法。
【问题讨论】:
标签: machine-learning tensorflow-federated
我想知道创建模型、使用 tensorflow federated 广播它、运行一个循环并收集客户端返回的权重而不用 fedavg 聚合它们的最简单方法。
【问题讨论】:
标签: machine-learning tensorflow-federated
TFF 为此提供了 tff.federated_collect 内在函数;它在服务器上实现客户端数据流。
将其连接到大多数现有联合过程的核心的一种简单方法是 fork simple_fedavg,我认为这是使用 TFF 的较低级别功能的合理起点。
这里有几点需要注意。首先,据我所知,没有任何“生产”系统支持federated_collect。其次,根据您的愿望,可能有一个更简单、更直接的解决方案:只返回客户端权重本身。 TFF 运行时将具体化客户端权重的 Python 列表(我相信作为热切张量),您可以在其上执行任意 Python 后处理。
要从simple_fedavg 到达这里,您实际上需要return the client_outputs directly 而不是将它们传递给tff.federated_mean。这将为您提供客户端增量(即最终客户端权重与初始客户端权重之间的差异);但是,如果需要,您可以简单地修改 client_update 以避免计算此差异。
【讨论】: