Я создал конвейер непрерывной интеграции / развертывания в Azure DevOps для обучения и развертывания модели машинного обучения в производственной среде. Он использует службы машинного обучения Azure на Python, чтобы настроить все, то есть обучить модель, зарегистрировать ее в рабочей области машинного обучения и развернуть как веб-службу. Одно из требований состоит в том, что мне нужно использовать несколько моделей в развернутом веб-сервисе. Нет проблем с включением моделей в развернутый веб-сервис при просмотре рабочей области с портала Azure. Моя проблема заключается в том, что я не знаю, как получить к ним доступ, не зная названия моделей.
Что обычно происходит, выглядит так: score.py
from azureml.core.model import Model
from sklearn.externals import joblib
import pandas
def init():
global model
model_path = Model.get_model_path('model_name')
model = joblib.load(model_path)
def run(raw_data):
data = pandas.DataFrame(json.loads(raw_data)['Inputs'])
return do_prediction(data) # Use the model to make prediction
Затем у меня также есть сценарий python, который создает изображение со всеми необходимыми моделями и развертывает его как веб-сервис в Azure.
То, что я хотел бы использовать, будет выглядеть примерно так (но это дает ошибку, поскольку я не могу перечислить модели). score.py
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