From c4058e4b8e6e546ef9e4af28c752092e9250b5b0 Mon Sep 17 00:00:00 2001 From: Sergii Baidachnyi Date: Thu, 30 Jan 2020 15:50:39 -0800 Subject: [PATCH 1/4] pkl wxtension should not be a requirement --- diabetes_regression/scoring/score.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index 10227fcc..86e7467e 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -26,6 +26,7 @@ import numpy import joblib import os +import glob from inference_schema.schema_decorators \ import input_schema, output_schema from inference_schema.parameter_types.numpy_parameter_type \ @@ -36,17 +37,14 @@ def init(): # load the model from file into a global object global model - # AZUREML_MODEL_DIR is an environment variable created during service - # deployment. It contains the path to the folder containing the model. - path = os.environ['AZUREML_MODEL_DIR'] - model_path = None - for root, dirs, files in os.walk(path): - for file in files: - if '.pkl' in file: - model_path = os.path.join(path, file) - if model_path is None: - raise ValueError(".pkl model not found") - model = joblib.load(model_path) + # we assume that we have just one model + # AZUREML_MODEL_DIR is an environment variable created during deployment. + # It is the path to the model folder + # (./azureml-models/$MODEL_NAME/$VERSION) + fset = [file for file in glob.glob( + "{0}/*.*".format(os.getenv("AZUREML_MODEL_DIR")), recursive=True)] + + model = joblib.load(fset[0]) input_sample = numpy.array([ From 252207ae13007bed5ecc6a2b6bab629cb63e59e4 Mon Sep 17 00:00:00 2001 From: Sergii Baidachnyi Date: Fri, 31 Jan 2020 10:32:02 -0800 Subject: [PATCH 2/4] use split to get model name --- diabetes_regression/scoring/score.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index 86e7467e..b4459a9c 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -26,7 +26,7 @@ import numpy import joblib import os -import glob +from azureml.core.model import Model from inference_schema.schema_decorators \ import input_schema, output_schema from inference_schema.parameter_types.numpy_parameter_type \ @@ -41,10 +41,9 @@ def init(): # AZUREML_MODEL_DIR is an environment variable created during deployment. # It is the path to the model folder # (./azureml-models/$MODEL_NAME/$VERSION) - fset = [file for file in glob.glob( - "{0}/*.*".format(os.getenv("AZUREML_MODEL_DIR")), recursive=True)] + model_path=Model.get_model_path(os.getenv("AZUREML_MODEL_DIR").split('/')[1]) - model = joblib.load(fset[0]) + model = joblib.load(model_path) input_sample = numpy.array([ From f6533ef6948fbf92693cebef943d080ca983e90c Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Fri, 31 Jan 2020 10:43:22 -0800 Subject: [PATCH 3/4] Update diabetes_regression/scoring/score.py Co-Authored-By: Alexandre Gattiker --- diabetes_regression/scoring/score.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index 039781a3..0db11adf 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -41,7 +41,7 @@ def init(): # AZUREML_MODEL_DIR is an environment variable created during deployment. # It is the path to the model folder # (./azureml-models/$MODEL_NAME/$VERSION) - model_path=Model.get_model_path(os.getenv("AZUREML_MODEL_DIR").split('/')[1]) + model_path=Model.get_model_path(os.getenv("AZUREML_MODEL_DIR").split('/')[-2]) model = joblib.load(model_path) From 979011821790f1c7047184700b3fa2ecbcf186cb Mon Sep 17 00:00:00 2001 From: Sergii Baidachnyi Date: Fri, 31 Jan 2020 10:48:58 -0800 Subject: [PATCH 4/4] linting --- diabetes_regression/scoring/score.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index 0db11adf..e6c77aa8 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -41,7 +41,8 @@ def init(): # AZUREML_MODEL_DIR is an environment variable created during deployment. # It is the path to the model folder # (./azureml-models/$MODEL_NAME/$VERSION) - model_path=Model.get_model_path(os.getenv("AZUREML_MODEL_DIR").split('/')[-2]) + model_path = Model.get_model_path( + os.getenv("AZUREML_MODEL_DIR").split('/')[-2]) model = joblib.load(model_path)