AutoML с MLOps приводит к ошибке - Сообщение: не удалось найти указанный путь_модели
Я пытаюсь обучить модель, используя функцию automl в Azure, используя простой набор данных, который отлично работает при выполнении вручную или через записную книжку, но не работает в конвейере azure DevOps. Создан конвейер azure DevOps с необходимым сервисным подключением к рабочему пространству машинного обучения.
Ниже в коде Python указано, что необходимые файлы загружены, но я не могу найти модель при запуске следующей команды для регистрации, тогда как код, указанный ниже, загрузил ее:
Я пытаюсь обучить модель с помощью команды az cli, а не через python. Любое предложение. Приглашение https://github.com/SaschaDittmann/MLOps-Lab в качестве ссылки, но изменена для automl части, так как это мерзавец репо не для автомобильных мл примыкают остальные стадии такие же.
az ml model register -g $(azureml.resourceGroup) -w $(azureml.workspaceName) -n $(model.Name) -f metadata/run.json --asset-path output/models/abc.pkl -d "test" --tag "data"="test" --model-framework ScikitLearn -t metadata/model.json
Приведенная выше команда всегда дает мне:- {'Azure-cli-ml Version': '1.12.0', 'Error': ModelPathNotFoundException: Сообщение: не удалось найти предоставленные выходные данные model_path / models /abc.pkl
## local_run - это еще один идентификатор запуска для automl, а run.getContext() - текущий идентификатор запуска.
automl_config = AutoMLConfig(task = 'classification',
primary_metric = 'accuracy',
X = X_train,
y = y_train,
n_cross_validations = 2,
**automl_settings)
local_run = exp.submit(automl_config, show_output = True)
local_run = list(exp.get_runs())[0]
children = list(local_run.get_children())
metricslist = {}
for run in children:
properties = run.get_properties()
metrics = {k: v for k, v in run.get_metrics().items() if isinstance(v, float)}
metricslist[int(properties['iteration'])] = metrics
rundata = pd.DataFrame(metricslist).sort_index(1)
best_run, fitted_model = local_run.get_output()
model_path = os.path.join(outputs_folder, model_filename)
#dump(fitted_model, model_path)
# upload the model file explicitly into artifacts
print("Uploading the model into run artifacts RUN ***** ...")
run.upload_file(name="./outputs/models/" +`enter code here` model_filename, path_or_stream=model_path1)
run.upload_file("outputs/models/abc.pkl", path_or_stream=model_path1)
print("Uploaded the model {} to experiment {}".format(model_filename, run.experiment.name))
dirpath = os.getcwd()
print(dirpath)
print("Following files are uploaded ")
print(run.get_file_names())
print("Uploading the model into run artifacts NEW **** ...")
local_run.upload_file(name="./outputs/models/" + model_filename, path_or_stream=model_path1)
local_run.upload_file("outputs/models/abc.pkl", path_or_stream=model_path1)
print("Uploaded the model {} to experiment {}".format(model_filename, local_run.experiment.name))
dirpath = os.getcwd()
print(dirpath)
print("Following files are uploaded ")
print(local_run.get_file_names())
run.complete()