INNER CODE UNIT · Python
avg_loss
Tisha-runwal/Personalized-Federated-Learning-for-Privacy--Preserving-and-Scalable-IoT-Driven-Smart-Healthcare · pfl_hcare/fl/server.py:306
avg_loss = sum(r[0] * r[1] for r in eval_results) / total_eval if total_eval > 0 else 0.0
avg_acc = sum(r[2].get("accuracy", 0.0) * r[1] for r in eval_results) / total_eval if total_eval > 0 else 0.0
per_client_acc = [r[2].get("accuracy", 0.0) for r in eval_results]
# ---------------------------------------------------------------
# Step 8: Record comprehensive metrics
# ---------------------------------------------------------------
grad_norms = [r[3].get("grad_norm", 0.0) for r in fit_results]
avg_grad_norm = np.nanmean(grad_norms) if grad_norms else 0.0
epsilon_spent = dp_accountant.get_epsilon() if dp_accountant else 0.0
metrics_collector.record_round(
round_num=rnd,
method=method,
global_accuracy=avg_acc,
global_loss=avg_loss,
num_clients=len(selected_ids),