Exemplo n.º 1
0
def predict_onnx(model_uri, data):
    print(f"\nmlflow.onnx.load_model\nModel URI: {model_uri}")
    import mlflow.onnx
    import onnx_utils
    model = mlflow.onnx.load_model(model_uri)
    print("model.type:", type(model))
    data = data.to_numpy()
    predictions = onnx_utils.score_model(model, data)
    display(predictions)
Exemplo n.º 2
0
def main(model_uri, data_path):
    print("Options:")
    for k, v in locals().items():
        print(f"  {k}: {v}")

    data = pd.read_csv(data_path).to_numpy()

    model = mlflow.onnx.load_model(model_uri)
    print("model.type:", type(model))

    predictions = onnx_utils.score_model(model, data)
    print("predictions.type:", type(predictions))
    print("predictions.shape:", predictions.shape)
    print("predictions:", predictions)
def main(model_uri):
    print("model_uri:", model_uri)
    data = utils.get_prediction_data()

    print("\n**** mlflow.onnx.load_model\n")
    model = mlflow.onnx.load_model(model_uri)
    print("model.type:", type(model))
    predictions = onnx_utils.score_model(model, data)
    print("predictions.type:", type(predictions))
    print("predictions.shape:", predictions.shape)
    print("predictions:", predictions)

    utils.predict_pyfunc(model_uri, data)

    print("\n**** mlflow.pyfunc.load_model\n")
    model = mlflow.pyfunc.load_model(model_uri)
    print("model.type:", type(model))
    data = pd.DataFrame(data)
    predictions = model.predict(data)
    print("predictions.type:", type(predictions))
    print("predictions.shape:", predictions.shape)
    print("predictions:", predictions)
from argparse import ArgumentParser
import mlflow
import mlflow.onnx
import utils
import onnx_utils

print("MLflow Version:", mlflow.__version__)
print("Tracking URI:", mlflow.tracking.get_tracking_uri())

if __name__ == "__main__":
    parser = ArgumentParser()
    parser.add_argument("--model_uri", dest="model_uri", help="model_uri", default="../../data/train/wine-quality-white.csv")
    args = parser.parse_args()
    print("Arguments:")
    for arg in vars(args):
        print(f"  {arg}: {getattr(args, arg)}")

    _,_,data,_  = utils.build_data()
    model = mlflow.onnx.load_model(args.model_uri)
    print("model.type:", type(model))

    predictions = onnx_utils.score_model(model, data)
    print("predictions.type:",type(predictions))
    print("predictions.shape:",predictions.shape)
    print("predictions:",predictions)
    # TODO: convert tensor to Pyfunc scoring format
    if args.score_as_pyfunc:
        print("\n**** pyfunc.load_model")
        model = mlflow.pyfunc.load_model(model_uri)
        print("model.type:", type(model))
        data_pd = pd.DataFrame(
            data.numpy())  #  TODO: ValueError: Must pass 2-d input
        outputs = model.predict(data_pd)
        print("outputs.type:", type(outputs))

    if args.score_as_onnx:
        print("\n**** onnx.load_model - onnx\n")
        import mlflow.onnx
        import onnx
        import onnx_utils
        print("ONNX Version:", onnx.__version__)

        model_uri = f"runs:/{args.run_id}/onnx-model"
        model = mlflow.onnx.load_model(model_uri)
        print("model.type:", type(model))

        # TODO: convert tensor to ONNX scoring format
        # INVALID_ARGUMENT : Got invalid dimensions for input: input.1 for the following indices
        # index: 0 Got: 10000 Expected: 64
        data = data.numpy()

        outputs = onnx_utils.score_model(model, data)
        print("outputs.type:", type(outputs))
        print("outputs:\n", pd.DataFrame(outputs))
Exemplo n.º 6
0
    outputs = model(data)
    print("outputs.type:", type(outputs))
    outputs = outputs.detach().numpy()
    outputs = pd.DataFrame(outputs)
    print("outputs:\n", outputs)

    print("\n==== pyfunc.load_model - pytorch\n")
    model = mlflow.pyfunc.load_model(model_uri)
    print("model.type:", type(model))
    outputs = model.predict(data_pd)
    print("outputs.type:", type(outputs))
    print("outputs:\n", outputs)

    artifacts = client.list_artifacts(args.run_id, "onnx-model")
    if len(artifacts) > 0:
        model_uri = f"runs:/{args.run_id}/onnx-model"
        print("\n==== onnx.load_model - onnx\n")
        model = mlflow.onnx.load_model(model_uri)
        print("model.type:", type(model))
        outputs = onnx_utils.score_model(model, data_pd.to_numpy())
        print("outputs.type:", type(outputs))
        print("outputs:\n", pd.DataFrame(outputs))

        print("\n==== pyfunc.load_model - onnx\n")
        print("model_uri:", model_uri)
        model = mlflow.pyfunc.load_model(model_uri)
        print("model.type:", type(model))
        outputs = model.predict(data_pd)
        print("outputs.type:", type(outputs))
        print("outputs:\n", outputs)