如何使用tffapi进行自定义使用?

2024-05-14 01:01:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我仔细阅读和研究了TFFguideAPIs页。但我对一些细节感到困惑。你知道吗

例如,当我想包装/装饰一个TF/python函数时,请使用以下两个API:

1. tff.tf_computation()
2. tff.federated_computation()

我找不到它们之间有什么区别,什么时候我可以使用它们。特别是,如果我想使用除FedAvgFedSgd之外的其他算法。我想知道你是否知道:

  1. 如何使用它们来操纵输入?它们在@客户端@服务器上工作吗?你知道吗
  2. 除了tff.federated_meantff.federated_sum的输出值将在服务器中之外,我如何在其他用法中使用它们?你知道吗
  3. 我如何能够访问@客户端@服务器中的数据和度量的详细信息?你知道吗
  4. 为什么我们要从tff.federated_computation()调用tff.tf_computation()?在这个link中,没有任何关于它们的解释。你知道吗
  5. 这些api(例如tff.federated_meantff.federated_sum)是否修改了每个@CLIENT的输出元素并将它们带到@SERVER?你知道吗

有人能帮我理解这个概念背后的直觉吗?你知道吗


Tags: 函数服务器客户端tf装饰mean细节apis
1条回答
网友
1楼 · 发布于 2024-05-14 01:01:51

关于不同函数装饰器的一个可能的经验法则:

  • tff.tf_computation用于包装TF逻辑。想想“张量输入,张量输出”:这应该非常类似于tf.function的用法,其中参数和返回值是张量,或者是张量的嵌套结构。TFF内部函数(例如tff.federated_mean)不能在tff.tf_computation内部使用,tff.tf_computations不能调用tff.federated_computations。类型签名始终处于未放置状态。

  • tff.federated_computation应该用于包装TFF编程抽象。想想这里的张量,那里的张量:在这个上下文中,tff.tf_computation可以应用于tff.Value,而tff.Value可以使用内部函数与其他位置进行通信。类型签名可以接受联合类型(即带有位置的类型)。

关于你的问题清单:

  1. 两者都可以处理放置在CLIENTSSERVER的值。例如,名为tff.tf_computationmy_comp可以应用于v类型为int32@CLIENTS类型为tff.federated_map(my_comp, v)的值,该值将在每个客户机上运行my_comp。你知道吗
  2. ^{}支持对不在服务器上的数据应用逐点计算(跨客户端)。您可以使用tff.federated_map操作每个客户机上的度量。TFF不适用于不同客户机上的单独选项;抽象不支持寻址个人。您可以在Python中对此进行模拟,请参见Operations performed on the communications between the server and clients。你知道吗
  3. 在模拟中,只要从tff.Computation返回并调用该计算,就可以检查所放置数据的值。这些值应该在Python环境中可用。你知道吗
  4. tff.tf_computation应该可以从任何地方调用,如果文档中另有说明,请指向它。我相信我们要强调的是tff.federated_computation可以调用tff.tf_computation,但是不能反之亦然。你知道吗
  5. 教程(Federated Learning for Image ClassificationFederated Learning for Text Generation)展示了在模拟中打印度量的示例。你也可能对how to print local outputs in tensorflow federated?的答案感兴趣
  6. tff.tf_computations如果需要,应该直接执行。这将避免TFF的任何联邦部分,并简单地委托给TensorFlow。要将计算应用于联邦值并与联邦内部函数结合使用,必须在tff.federated_computation内部调用它们。你知道吗

相关问题 更多 >