def SendFeedback(self,feedback,context): datadef_request = feedback.request.data features = grpc_datadef_to_array(datadef_request) truth = grpc_datadef_to_array(feedback.truth) reward = feedback.reward send_feedback(self.user_model,features,datadef_request.names,truth,reward) return prediction_pb2.SeldonMessage()
def SendFeedback(self,feedback,context): datadef_request = feedback.request.data features = grpc_datadef_to_array(datadef_request) truth = grpc_datadef_to_array(feedback.truth) reward = feedback.reward routing = feedback.response.meta.routing.get(PRED_UNIT_ID) send_feedback(self.user_model,features,datadef_request.names,routing,reward,truth) return prediction_pb2.SeldonMessage()
def Predict(self, request, context): datadef = request.data features = grpc_datadef_to_array(datadef) predictions = np.array( predict(self.user_model, features, datadef.names)) if len(predictions.shape) > 1: class_names = get_class_names(self.user_model, predictions.shape[1]) else: class_names = [] data = array_to_grpc_datadef(predictions, class_names, request.data.WhichOneof("data_oneof")) # Construct meta data meta = prediction_pb2.Meta() metaJson = {} tags = get_custom_tags(self.user_model) if tags: metaJson["tags"] = tags metrics = get_custom_metrics(self.user_model) if metrics: metaJson["metrics"] = metrics json_format.ParseDict(metaJson, meta) return prediction_pb2.SeldonMessage(data=data, meta=meta)
def test_proto_tftensor_to_array(): names = ["a", "b"] array = np.array([[1, 2], [3, 4]]) datadef = prediction_pb2.DefaultData(names=names, tftensor=tf.make_tensor_proto(array)) array2 = grpc_datadef_to_array(datadef) assert array.shape == array2.shape assert np.array_equal(array, array2)
def TransformInput(self,request,context): datadef = request.data features = grpc_datadef_to_array(datadef) outlier_scores = score(self.user_model,features,datadef.names) request.meta.tags["outlierScore"] = list(outlier_scores) return request
def Predict(self,request,context): datadef = request.data features = grpc_datadef_to_array(datadef) predictions = np.array(predict(self.user_model,features,datadef.names)) #TODO: check that predictions is 2 dimensional class_names = get_class_names(self.user_model, predictions.shape[1]) data = array_to_grpc_datadef(predictions, class_names, request.data.WhichOneof("data_oneof")) return prediction_pb2.SeldonMessage(data=data)
def Route(self,request,context): datadef = request.data features = grpc_datadef_to_array(datadef) routing = np.array([[route(self.user_model,features,datadef.names)]]) #TODO: check that predictions is 2 dimensional class_names = [] data = array_to_grpc_datadef(routing, class_names, request.data.WhichOneof("data_oneof")) return prediction_pb2.SeldonMessage(data=data)
def TransformOutput(self,request,context): datadef = request.data features = grpc_datadef_to_array(datadef) transformed = np.array(transform_output(self.user_model,features,datadef.names)) #TODO: check that predictions is 2 dimensional class_names = get_class_names(self.user_model, datadef.names) data = array_to_grpc_datadef(transformed, class_names, request.data.WhichOneof("data_oneof")) return prediction_pb2.SeldonMessage(data=data)
def Predict(self, request, context): datadef = request.data features = grpc_datadef_to_array(datadef) predictions = np.array( predict(self.user_model, features, datadef.names)) if len(predictions.shape) > 1: class_names = get_class_names(self.user_model, predictions.shape[1]) else: class_names = [] data = array_to_grpc_datadef(predictions, class_names, request.data.WhichOneof("data_oneof")) return prediction_pb2.SeldonMessage(data=data)
def Route(self,request,context): datadef = request.data features = grpc_datadef_to_array(datadef) routing = np.array([[route(self.user_model,features,datadef.names)]]) #TODO: check that predictions is 2 dimensional class_names = [] data = array_to_grpc_datadef(routing, class_names, request.data.WhichOneof("data_oneof")) # Construct meta data meta = prediction_pb2.Meta() metaJson = {} tags = get_custom_tags(self.user_model) if tags: metaJson["tags"] = tags metrics = get_custom_metrics(self.user_model) if metrics: metaJson["metrics"] = metrics json_format.ParseDict(metaJson,meta) return prediction_pb2.SeldonMessage(data=data,meta=meta)