Example #1
0
    def Predict(self,request,context):
        features = get_data_from_proto(request)
        datadef = request.data
        data_type = request.WhichOneof("data_oneof")
        predictions = predict(self.user_model,features,datadef.names)

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

        
        if isinstance(predictions, np.ndarray) or data_type == "data":
            predictions = np.array(predictions)
            if len(predictions.shape)>1:
                class_names = get_class_names(self.user_model, predictions.shape[1])
            else:
                class_names = []

            if data_type == "data":
                default_data_type = request.data.WhichOneof("data_oneof")
            else:
                default_data_type = "tensor"
            data = array_to_grpc_datadef(predictions, class_names, default_data_type)
            return prediction_pb2.SeldonMessage(data=data,meta=meta)
        else:
            return prediction_pb2.SeldonMessage(binData=predictions,meta=meta)        
def test_proto_array_to_tftensor():
    arr = np.array([[1, 2, 3], [4, 5, 6]])
    datadef = array_to_grpc_datadef(arr, [], "tftensor")
    print(datadef)
    assert datadef.tftensor.tensor_shape.dim[0].size == 2
    assert datadef.tftensor.tensor_shape.dim[1].size == 3
    assert datadef.tftensor.dtype == 9
    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 TransformOutput(self, request, context):
        features = get_data_from_proto(request)
        datadef = request.data
        data_type = request.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)

        transformed = transform_output(self.user_model, features,
                                       datadef.names)

        if isinstance(transformed, np.ndarray) or data_type == "data":
            transformed = np.array(transformed)
            class_names = get_class_names(self.user_model, datadef.names)
            if data_type == "data":
                default_data_type = request.data.WhichOneof("data_oneof")
            else:
                default_data_type = "tensor"
            data = array_to_grpc_datadef(transformed, class_names,
                                         default_data_type)
            return prediction_pb2.SeldonMessage(data=data, meta=meta)
        else:
            return prediction_pb2.SeldonMessage(binData=transformed, meta=meta)
Example #5
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)
Example #6
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)
Example #8
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)
Example #9
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)