Я строю конвейер преобразования и обучения данных в Azure Machine Leaning Service.Я хотел бы сохранить свой встроенный трансформатор (например, tf-idf) в BLOB-объекте, чтобы мой конвейер прогнозирования мог позже получить к нему доступ.
transformed_data = PipelineData("transformed_data",
datastore = default_datastore,
output_path_on_compute="my_project/tfidf")
step_tfidf = PythonScriptStep(name = "tfidf_step",
script_name = "transform.py",
arguments = ['--input_data', blob_train_data,
'--output_folder', transformed_data],
inputs = [blob_train_data],
outputs = [transformed_data],
compute_target = aml_compute,
source_directory = project_folder,
runconfig = run_config,
allow_reuse = False)
Приведенный выше код сохраняет преобразователь в папку текущего цикла, которая динамически генерируется при каждом запуске.
Я хочу сохранить преобразователь в фиксированном месте на BLOB-объекте, чтобы я мог получить к нему доступ позже, при вызове конвейера прогнозирования.
Я попытался использовать экземпляр класса DataReference
в качествеPythonScriptStep
вывод, но это приводит к ошибке: ValueError: Unexpected output type: <class 'azureml.data.data_reference.DataReference'>
Это потому, что PythonScriptStep
принимает только PipelineData
или OutputPortBinding
объекты в качестве выходных данных.
Как я могу сохранить свойвстроенный трансформатор, чтобы он был позже доступен любому процессу (например, мой конвейер прогнозирования)?