我已经准确地阅读和研究了 TFF指南和API页面。但我对这些功能的使用以及如何控制它们感到困惑。
例如,在教程中,有一个函数负责聚合指标。
@tff.federated_computation
def aggregate_mnist_metrics_across_clients(metrics):
return {
'num_examples': tff.federated_sum(metrics.num_examples),
'loss': tff.federated_mean(metrics.loss, metrics.num_examples),
'accuracy':tff.federated_mean(metrics.accuracy,metrics.num_examples)
}
它在MODEL类中调用。但是在类中调用度量之后,我需要访问度量的元素。我想在模型中调用后修改指标并在其他函数中调用它们。
但是,例如,我不能调用它们(例如,使用tff.Type
诸如.type_signature
,因为它需要 namedTuple __getattr__
)。而且我不明白它们如何在其他函数的代码体中使用的概念背后的直观概念?
在 TFF 中,我希望每个函数在服务器端或客户端都有一个位置,但是它们都可以在任何函数中访问,这会让人感到困惑。谁负责计算?@CLIENT 还是 @SERVER?
谁能帮助我?