Example #1
0
def evaluate_res_to_proto(
        res: typing.EvaluateRes) -> ClientMessage.EvaluateRes:
    """Serialize flower.EvaluateIns to ProtoBuf message."""
    num_examples, loss, acc = res
    return ClientMessage.EvaluateRes(num_examples=num_examples,
                                     loss=loss,
                                     accuracy=acc)
Example #2
0
def evaluate_res_to_proto(res: typing.EvaluateRes) -> ClientMessage.EvaluateRes:
    """Serialize flower.EvaluateIns to ProtoBuf message."""
    metrics_msg = None if res.metrics is None else metrics_to_proto(res.metrics)
    # Legacy case, will be removed in a future release
    if res.accuracy is not None:
        return ClientMessage.EvaluateRes(
            loss=res.loss,
            num_examples=res.num_examples,
            accuracy=res.accuracy,  # Deprecated
            metrics=metrics_msg,
        )
    # Forward-compatible case
    return ClientMessage.EvaluateRes(
        loss=res.loss,
        num_examples=res.num_examples,
        metrics=metrics_msg,
    )
Example #3
0
def fpe_res_to_proto(
    res: Tuple[typing.EvaluateRes, typing.EvaluateRes]
) -> ClientMessage.FederatedPersonalizedEvaluateRes:
    """Serialize flower.EvaluateRes to ProtoBuf message."""
    baseline, personalized = res[0], res[1]
    baseline_metrics_msg = None if baseline.metrics is None else metrics_to_proto(
        baseline.metrics)
    personalized_metrics_msg = None if personalized.metrics is None else metrics_to_proto(
        personalized.metrics)

    # Legacy case, will be removed in a future release
    if baseline.accuracy is not None:
        baseline_fpe_res_proto = ClientMessage.EvaluateRes(
            loss=baseline.loss,
            num_examples=baseline.num_examples,
            accuracy=baseline.accuracy,  # Deprecated
            metrics=baseline_metrics_msg,
        )
        personalized_fpe_res_proto = ClientMessage.EvaluateRes(
            loss=personalized.loss,
            num_examples=personalized.num_examples,
            accuracy=personalized.accuracy,  # Deprecated
            metrics=personalized_metrics_msg,
        )
        return ClientMessage.FederatedPersonalizedEvaluateRes(
            baseline=baseline_fpe_res_proto,
            personalized=personalized_fpe_res_proto)

    # Forward-compatible case

    baseline_fpe_res_proto = ClientMessage.EvaluateRes(
        loss=baseline.loss,
        num_examples=baseline.num_examples,
        metrics=baseline_metrics_msg,
    )
    personalized_fpe_res_proto = ClientMessage.EvaluateRes(
        loss=personalized.loss,
        num_examples=personalized.num_examples,
        metrics=personalized_metrics_msg,
    )
    return ClientMessage.FederatedPersonalizedEvaluateRes(
        baseline=baseline_fpe_res_proto,
        personalized=personalized_fpe_res_proto)
Example #4
0
def evaluate_res_to_proto(
        res: typing.EvaluateRes) -> ClientMessage.EvaluateRes:
    """Serialize flower.EvaluateIns to ProtoBuf message."""
    metrics_msg = None if res.metrics is None else metrics_to_proto(
        res.metrics)
    return ClientMessage.EvaluateRes(
        loss=res.loss,
        num_examples=res.num_examples,
        accuracy=res.accuracy,  # Deprecated
        metrics=metrics_msg,
    )