INNER CODE UNIT · Python

_record_round_metrics

Tisha-runwal/Personalized-Federated-Learning-for-Privacy--Preserving-and-Scalable-IoT-Driven-Smart-Healthcare · pfl_hcare/fl/server.py:400

def _record_round_metrics(
    mc, rnd, method, num_clients, selected_ids, fit_results,
    prev_acc, prev_loss, per_client_acc, quantizer, secure_agg, dp_accountant,
):
    """Record metrics when aggregation is skipped (NaN fallback)."""
    grad_norms = [r[3].get("grad_norm", 0.0) for r in fit_results]
    mc.record_round(
        round_num=rnd,
        method=method,
        global_accuracy=prev_acc,
        global_loss=prev_loss,
        num_clients=len(selected_ids),
        total_clients=num_clients,
        clients_selected=selected_ids,
        avg_grad_norm=float(np.nanmean(grad_norms)) if grad_norms else 0.0,
        per_client_accuracy=per_client_acc,
        epsilon_spent=dp_accountant.get_epsilon() if dp_accountant else 0.0,
        bytes_original=0, bytes_quantized=0,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…