【问题标题】:Are there any way to do federated learning with real multiple machines using tensorflow-federated API?有没有办法使用 tensorflow-federated API 与真正的多台机器进行联合学习?
【发布时间】:2019-09-08 04:03:14
【问题描述】:
我正在研究 tensorflow-federated API 以使用真正的多台机器进行联合学习。
但是我在这个网站上找到了不支持使用多重学习进行真正的多重联邦学习的答案。
有没有办法用真正的多台机器进行联邦学习?
即使我用 2 台客户端 PC 和 1 台服务器 PC 制作了联邦学习的网络结构,使用 tensorflow 联邦 API 是否无法组成该系统?
或者即使我应用代码,我也无法制作我想要的系统?
如果可以修改代码进行配置,能否给个tips?如果不行,什么时候有实例在真机上配置?
【问题讨论】:
标签:
tensorflow
tensorflow-federated
【解决方案1】:
如果您仍在寻找某些东西:如果您未绑定到 TensorFlow,则可以查看使用 PyTorch 的 PySyft。 Here 是一个使用一台服务器和两台 Raspberry Pi 作为客户端构建的 FL 系统的实际示例。
【解决方案2】:
TFF 实际上是关于表达您希望执行的联合计算。在物理部署方面,TFF 包括两个不同的运行时:一个“引用执行器”,它简单地解释 TFF 生成的句法工件,串行,全部在 Python 中,没有任何花哨的构造或优化;另一个仍在开发中,但在教程中进行了演示,它使用asyncio 和执行器层次结构以允许灵活的执行器架构。这两者都是关于模拟和 FL 研究,而不是关于部署到设备。
原则上,这可能会解决您的问题(特别是,请参阅tff.framework.RemoteExecutor)。但我假设您正在询问更多关于部署到“真实”FL 系统的信息,例如来自您无法控制的来源的数据。这确实超出了 TFF 的范围。来自常见问题解答:
虽然我们在设计 TFF 时考虑到了部署到真实设备上,但现阶段我们目前不为此目的提供任何工具。当前版本旨在用于实验用途,例如表达新颖的联邦算法,或使用包含的模拟运行时使用您自己的数据集尝试联邦学习。
我们预计,随着时间的推移,围绕 TFF 的开源生态系统将发展到包括针对物理部署平台的运行时。