Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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)
Esempio n. 5
0
    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
Esempio n. 6
0
    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)
Esempio n. 7
0
    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)
Esempio n. 9
0
    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)
Esempio n. 10
0
    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)