def GetResults(self, request, context): if request.comp_id >= len(self.results): return hetr_pb2.GetResultsReply(status=False) pb_results = [] for r in self.results[request.comp_id]: pb_val = hetr_pb2.Value() if is_scalar_type(r): assign_scalar(pb_val.scalar, r) else: pb_val.tensor.CopyFrom(tensor_to_protobuf(r)) pb_results.append(pb_val) return hetr_pb2.GetResultsReply(status=True, results=pb_results)
def feed_input(self, values): logger.info("client: feed input") pb_values = [] for v in values: pb_val = hetr_pb2.Value() if is_scalar_type(v): assign_scalar(pb_val.scalar, v) else: pb_val.tensor.CopyFrom(tensor_to_protobuf(v)) pb_values.append(pb_val) self.feed_input_response_future = self.RPC.FeedInput.future( hetr_pb2.FeedInputRequest(comp_id=self.comp_id, values=pb_values), _TIMEOUT_SECONDS)
def feed_input(self, values): pb_values = [] for v in values: pb_val = hetr_pb.Value() if is_scalar_type(v): assign_scalar(pb_val.scalar, v) else: pb_val.tensor.CopyFrom(tensor_to_protobuf(v)) pb_values.append(pb_val) response = self.RPC.FeedInput( hetr_pb2.FeedInputRequest(comp_id=self.comp_id, values=pb_values), _TIMEOUT_SECONDS) if not response.status: raise RuntimeError("RPC feed_input request failed!")
def GetResults(self, request, context): logger.debug("server: get_results") if request.comp_id not in self.results: message = 'unknown computation id {}'.format(request.comp_id) return hetr_pb2.GetResultsReply(status=False, message=message) try: pb_results = [] for r in self.results[request.comp_id]: pb_val = hetr_pb2.Value() if is_scalar_type(r): assign_scalar(pb_val.scalar, r) else: pb_val.tensor.CopyFrom(tensor_to_protobuf(r)) pb_results.append(pb_val) return hetr_pb2.GetResultsReply(status=True, results=pb_results) except Exception: return hetr_pb2.GetResultsReply(status=False, message=traceback.format_exc())
def test_scalar_to_protobuf(): orig_tensor = np.float32(12) pb_tensor = ser.tensor_to_protobuf(orig_tensor) py_tensor = ser.pb_to_tensor(pb_tensor) np.testing.assert_allclose(orig_tensor, py_tensor)
def test_tensor_to_protobuf(): orig_tensor = np.arange(12, dtype=np.float32).reshape(3, 4) pb_tensor = ser.tensor_to_protobuf(orig_tensor) py_tensor = ser.pb_to_tensor(pb_tensor) np.testing.assert_allclose(orig_tensor, py_tensor)