联合学习研究的一部分基于对服务器和客户端之间的通信执行的操作,例如删除部分在客户端和服务器之间交换的更新(删除描述模型的某些渐变)或丢弃来自特定客户端的更新。一轮交流。我想知道Tensorflow联合(TFF)框架是否支持这些功能,以及如何支持这些功能,因为从我的第一眼看,TFF API的抽象级别不允许这种操作。谢谢。
答案 0 :(得分:1)
TFF的语言设计故意避免了客户 identity 的概念;希望避免使“客户端X”成为可寻址的,并放弃其更新或向其发送其他数据。
但是,可能有一种方法可以运行上述计算类型的模拟。 TFF支持表达以下内容:
以张量的属性为条件的计算,例如忽略具有nan
值的更新。可以实现此目的的一种方法是编写一个tff.tf_computation
,有条件地将tff.federated_mean
之前的更新权重清零。 tff.learning.build_federated_averaing_process()
在不同的客户端组(其中一组可能是单个客户端)上运行不同的计算的模拟。由于参考执行程序通过客户端拥有的数据对客户端进行参数化,因此TFF的编写者可以编写两个tff.federated_computation
,将它们应用于不同的模拟数据,然后组合结果。