TFF:如何更改联合学习的评估功能

时间:2020-07-02 10:29:48

标签: tensorflow-federated

要使用TFF实现我的代码,请使用方法

tff.learning.build_federated_evaluation()

但是我不明白这种方法如何评估客户的准确性。因此,正如我的问题所示,我想在TFF中更改此评估功能的指标和代码,因此我该如何进行,请链接代码功能。 谢谢!

1 个答案:

答案 0 :(得分:0)

根据“更改此评估函数的指标代码”的含义,tff.learning.build_federated_evaluation()中可能不需要更改。

如果您要添加新指标,则可以在tff.learning.Model上实现。

  • 如果使用tf.keras.Model,只需将指标添加到传递给tff.learning.from_keras_model()的指标列表中。这将产生一个示例加权指标值。
  • 如果不使用Keras,则需要扩展子类tff.learning.Model.report_local_ouputs()tff.learning_model.federated_output_computation的实现。可以找到一个示例here。请注意,tff.learning.Model.forward_pass如何更新指标变量,然后tff.learnining.Model.report_local_outputs计算整个本地批次中的最终指标值。最后,tff.learning.Model.federated_output_computation提供了一种用于在客户端之间 计算全局度量值的机制。

作为参考,可以在here中找到tff.learning.build_federated_evaluation()的实现,并说明如何将以上讨论的tff.learning.Model方法一起用于计算指标。