要使用 TFF 实现我的代码,我使用以下方法
tff.learning.build_federated_evaluation()
但我不明白这种方法如何评估客户的准确性。因此,就像我的问题所表明的那样,我想在 TFF 中更改此评估功能的指标和代码,那么我该如何继续,请链接代码功能。 谢谢!!
根据"更改此评估函数的指标代码"的含义,可能不需要更改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
的实现。可以在此处找到一个示例。请注意tff.learning.Model.forward_pass
如何更新指标变量,然后tff.learnining.Model.report_local_outputs
跨本地批处理计算最终指标值。最后tff.learning.Model.federated_output_computation
提供了跨客户端计算全局指标值的机制。
作为参考,可以在此处找到tff.learning.build_federated_evaluation()
的实现,并显示如何将上面讨论的tff.learning.Model
方法一起使用来计算指标。