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)
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, )
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)
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, )