Python 在Azure容器实例中部署机器学习模型时,如何访问所有注册的模型?

Python 在Azure容器实例中部署机器学习模型时,如何访问所有注册的模型?,python,azure-devops,azure-machine-learning-service,Python,Azure Devops,Azure Machine Learning Service,我已经在Azure DevOps中构建了一个持续集成/部署管道,用于培训机器学习模型并将其部署到生产环境中。它使用Python中的Azure机器学习服务来设置一切,即训练模型,在机器学习工作区中注册模型,并将其部署为Web服务。一个要求是我需要在部署的webservice中使用多个模型。从Azure门户查看工作区时,将模型包括在已部署的webservice中没有问题。我的问题在于,在不知道模型名称的情况下,我不知道如何访问它们 通常发生的情况如下所示: score.py 然后,我还有一个pyth

我已经在Azure DevOps中构建了一个持续集成/部署管道,用于培训机器学习模型并将其部署到生产环境中。它使用Python中的Azure机器学习服务来设置一切,即训练模型,在机器学习工作区中注册模型,并将其部署为Web服务。一个要求是我需要在部署的webservice中使用多个模型。从Azure门户查看工作区时,将模型包括在已部署的webservice中没有问题。我的问题在于,在不知道模型名称的情况下,我不知道如何访问它们

通常发生的情况如下所示: score.py

然后,我还有一个python脚本,它创建了一个包含所有需要的模型的映像,并将其部署为Azure中的Web服务

我想要使用的东西看起来像这样(但它给出了一个错误,因为我无法列出模型)。 score.py


我目前的方法是在发布管道创建的Docker映像中导航Azure提供的目录结构

    root_dir = './azureml-models'
    for model_name in os.listdir(root_dir):
        for model_version in os.listdir(os.path.join(root_dir, model_name) ):
            model_path = Model.get_model_path(model_name, version = int(model_version))
            model = joblib.load(model_path)
如果您找到更好的解决方案,请告诉我

from azureml.core.model import Model
from sklearn.externals import joblib
import pandas
def init():
   model_list = []
   models = Model.list() # Gives an error since no workspace is provided.
   for model in models:
      model_list.append(joblib.load(model.name))
def run(raw_data):
   data = pandas.DataFrame(json.loads(raw_data)['Inputs'])
   return do_prediction(data) # Use the model to make prediction

    root_dir = './azureml-models'
    for model_name in os.listdir(root_dir):
        for model_version in os.listdir(os.path.join(root_dir, model_name) ):
            model_path = Model.get_model_path(model_name, version = int(model_version))
            model = joblib.load(model_path)