0

很高兴看到 tensorflow-federated 现在可以支持分布式训练。我在这里提到了这个例子。但是,似乎训练数据在每个时期都是从服务器发送到客户端的,并且客户端(remote_executor_service)不包含任何数据集。它不同于典型的联邦学习场景。所以我想知道我可以将训练数据分别放在每个客户端上吗?

4

1 回答 1

1

有两点需要注意:

  • 链接的示例(使用 Kubernetes 进行高性能模拟)正在运行联邦学习模拟。目前 TensorFlow Federated 主要用于执行研究模拟。还没有一种方法可以部署到真正的智能手机上。在模拟中,每个客户端数据集在逻辑上是独立的,但可能物理上存在于同一台机器上。

  • 创建一个tf.data.Dataset(例如train_data教程中的定义)可以被认为是创建一个“读取数据的方法”,而不是实际读取数据本身。例如,添加.batch().map()调用数据集会返回一个新配方,但实际上并没有具体化任何数据集示例。数据集在调用之前不会被实际读取,或者数据集在循环.reduce()中被迭代。for在教程中,数据集“recipe”被发送给远程工作者;在本地训练期间迭代数据集时,远程读取/物化数据(数据本身不会发送给远程工作人员)。

于 2020-05-10T12:29:33.753 回答