我试图在没有运气的情况下获得张量流模型中所有客户的损失。发布如何在 tensorflow federated 中打印本地输出的答案? 建议从头开始创建我们的 NN 模型。但是,我已经有了我的 keras NN 模型。那么有没有办法在不必从头开始构建 NN 的情况下仍然访问本地客户损失?
我尝试使用 tff.federated_collect(),但不确定这怎么可能。
这部分是我的尝试:
trainer_Itr_Process = tff.learning.build_federated_averaging_process(model_fn_Federated,server_optimizer_fn=(lambda : tf.keras.optimizers.SGD(learning_rate=learn_rate)),client_weight_fn=None)
FLstate = trainer_Itr_Process.initialize()
@tff.learning.Model
def federated_output_computation():
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),
'per_client/num_examples': tff.federated_collect(metrics.num_examples),
'per_client/loss': tff.federated_collect(metrics.loss),
'per_client/accuracy': tff.federated_collect(metrics.accuracy),
}
这是我收到的错误:
@tff.learning.Model
TypeError: object() takes no parameters