From 7f83c518115c138115da57baea3b7f693981beaf Mon Sep 17 00:00:00 2001 From: Facundo Santiago Date: Fri, 30 Jun 2023 21:31:12 +0000 Subject: [PATCH] fix: load model path and function --- .../deployment-custom/code/batch_driver.py | 2 +- .../code/batch_driver_parquet.py | 2 +- .../deployment-simple/model/MLmodel | 22 ------------------ .../deployment-simple/model/conda.yaml | 11 --------- .../deployment-simple/model/model.pkl | Bin 118794 -> 0 bytes .../deployment-simple/model/requirements.txt | 15 ------------ .../{deployment-custom => }/model/MLmodel | 0 .../{deployment-custom => }/model/conda.yaml | 0 .../{deployment-custom => }/model/model.pkl | Bin .../model/requirements.txt | 0 .../code/batch_driver.py | 2 +- .../code/batch_driver_parquet.py | 2 +- 12 files changed, 4 insertions(+), 52 deletions(-) delete mode 100644 cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/MLmodel delete mode 100644 cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/conda.yaml delete mode 100644 cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/model.pkl delete mode 100644 cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/requirements.txt rename cli/endpoints/batch/deploy-models/heart-classifier-mlflow/{deployment-custom => }/model/MLmodel (100%) rename cli/endpoints/batch/deploy-models/heart-classifier-mlflow/{deployment-custom => }/model/conda.yaml (100%) rename cli/endpoints/batch/deploy-models/heart-classifier-mlflow/{deployment-custom => }/model/model.pkl (100%) rename cli/endpoints/batch/deploy-models/heart-classifier-mlflow/{deployment-custom => }/model/requirements.txt (100%) diff --git a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver.py b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver.py index 5e8d611f34..a72a794d2d 100644 --- a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver.py +++ b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver.py @@ -19,7 +19,7 @@ def init(): model_path = glob.glob(os.environ["AZUREML_MODEL_DIR"] + "/*/")[0] # Load the model, it's input types and output names - model = mlflow.pyfunc.load(model_path) + model = mlflow.pyfunc.load_model(model_path) if model.metadata and model.metadata.signature: if model.metadata.signature.inputs: model_input_types = dict( diff --git a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver_parquet.py b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver_parquet.py index 2cf82f970c..026aa86f8f 100644 --- a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver_parquet.py +++ b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-custom/code/batch_driver_parquet.py @@ -22,7 +22,7 @@ def init(): output_path = os.environ["AZUREML_BI_OUTPUT_PATH"] # Load the model, it's input types and output names - model = mlflow.pyfunc.load(model_path) + model = mlflow.pyfunc.load_model(model_path) if model.metadata and model.metadata.signature: if model.metadata.signature.inputs: model_input_types = dict( diff --git a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/MLmodel b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/MLmodel deleted file mode 100644 index ec4997ca7c..0000000000 --- a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/MLmodel +++ /dev/null @@ -1,22 +0,0 @@ -artifact_path: pipeline -flavors: - python_function: - env: conda.yaml - loader_module: mlflow.sklearn - model_path: model.pkl - python_version: 3.8.5 - sklearn: - pickled_model: model.pkl - serialization_format: cloudpickle - sklearn_version: 1.1.2 -model_uuid: 04bd660a1b8b4b1e84b9198c46cfd117 -run_id: 22874b7e-b069-43f0-b90c-1c57793c7854 -signature: - inputs: '[{"name": "age", "type": "long"}, {"name": "sex", "type": "long"}, - {"name": "cp", "type": "long"}, {"name": "trestbps", "type": "long"}, {"name": - "chol", "type": "long"}, {"name": "fbs", "type": "long"}, {"name": "restecg", - "type": "long"}, {"name": "thalach", "type": "long"}, {"name": "exang", "type": - "long"}, {"name": "oldpeak", "type": "double"}, {"name": "slope", "type": "long"}, - {"name": "ca", "type": "long"}, {"name": "thal", "type": "string"}]' - outputs: '[{"type": "long"}]' -utc_time_created: '2022-10-13 00:55:57.543663' diff --git a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/conda.yaml b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/conda.yaml deleted file mode 100644 index 0605ffc2eb..0000000000 --- a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/conda.yaml +++ /dev/null @@ -1,11 +0,0 @@ -channels: -- conda-forge -dependencies: -- python=3.8.5 -- pip -- pip: - - mlflow - - cloudpickle==1.6.0 - - scikit-learn==1.1.2 - - xgboost==1.3.3 -name: mlflow-env diff --git a/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/model.pkl b/cli/endpoints/batch/deploy-models/heart-classifier-mlflow/deployment-simple/model/model.pkl deleted file mode 100644 index febb48669e98d7dbde2b6248d245e5655f5b43a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118794 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 c|NhO%n|EhFUw-@QZ@<3!^Q*tSfANq10e)