运行 本地 Azure 机器学习服务管道
Running Azure Machine Learning Service pipeline locally
我将 Azure 机器学习服务与 azureml-sdk python 库一起使用。
我正在使用 azureml.core 版本 1.0.8
我正在学习这个 https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-create-your-first-pipeline 教程。
当我使用 Azure 计算资源时,我已经开始工作了。但我想 运行 在本地。
我收到以下错误
raise ErrorResponseException(self._deserialize, response)
azureml.pipeline.core._restclients.aeva.models.error_response.ErrorResponseException: (BadRequest) Response status code does not indicate success: 400 (Bad Request).
Trace id: [uuid], message: Can't build command text for [train.py], moduleId [uuid] executionId [id]: Assignment for parameter Target is not specified
我的代码如下:
run_config = RunConfiguration()
compute_target = LocalTarget()
run_config.target = LocalTarget()
run_config.environment.python.conda_dependencies = CondaDependencies(conda_dependencies_file_path='environment.yml')
run_config.environment.python.interpreter_path = 'C:/Projects/aml_test/.conda/envs/aml_test_env/python.exe'
run_config.environment.python.user_managed_dependencies = True
run_config.environment.docker.enabled = False
trainStep = PythonScriptStep(
script_name="train.py",
compute_target=compute_target,
source_directory='.',
allow_reuse=False,
runconfig=run_config
)
steps = [trainStep]
# Build the pipeline
pipeline = Pipeline(workspace=ws, steps=[steps])
pipeline.validate()
experiment = Experiment(ws, 'Test')
# Fails, locally, works on Azure Compute
run = experiment.submit(pipeline)
# Works both locally and on Azure Compute
src = ScriptRunConfig(source_directory='.', script='train.py', run_config=run_config)
run = experiment.submit(src)
train.py
是一个非常简单的自包含脚本,仅依赖于近似 pi 的 numpy。
本地计算不能与 ML 管道一起使用。请看这个 article.
根据文档,在您的本地机器上进行训练(例如在开发期间)是可能的并且非常容易:how-to-set-up-training-targets
我在我的 windows 电脑上做了如下操作:
定义本地环境:
sklearn_env = Environment("user-managed-env")
sklearn_env.python.user_managed_dependencies = True
# You can choose a specific Python environment by pointing to a Python path
sklearn_env.python.interpreter_path = r'C:\Dev\tutorial\venv\Scripts\python.exe'
而且 compute_target='local'
似乎是将脚本定向到我的本地环境的神奇词。
src = ScriptRunConfig(source_directory=script_folder,
script='train_iris.py',
arguments=[dataset.as_named_input('iris')],
compute_target='local',
environment=sklearn_env)
然后我需要确保我的本地环境具有脚本所需的所有依赖项。
另外我需要在我的本地机器上安装这些包:
- azureml-默认值
- 包装
我将 Azure 机器学习服务与 azureml-sdk python 库一起使用。
我正在使用 azureml.core 版本 1.0.8
我正在学习这个 https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-create-your-first-pipeline 教程。
当我使用 Azure 计算资源时,我已经开始工作了。但我想 运行 在本地。
我收到以下错误
raise ErrorResponseException(self._deserialize, response)
azureml.pipeline.core._restclients.aeva.models.error_response.ErrorResponseException: (BadRequest) Response status code does not indicate success: 400 (Bad Request).
Trace id: [uuid], message: Can't build command text for [train.py], moduleId [uuid] executionId [id]: Assignment for parameter Target is not specified
我的代码如下:
run_config = RunConfiguration()
compute_target = LocalTarget()
run_config.target = LocalTarget()
run_config.environment.python.conda_dependencies = CondaDependencies(conda_dependencies_file_path='environment.yml')
run_config.environment.python.interpreter_path = 'C:/Projects/aml_test/.conda/envs/aml_test_env/python.exe'
run_config.environment.python.user_managed_dependencies = True
run_config.environment.docker.enabled = False
trainStep = PythonScriptStep(
script_name="train.py",
compute_target=compute_target,
source_directory='.',
allow_reuse=False,
runconfig=run_config
)
steps = [trainStep]
# Build the pipeline
pipeline = Pipeline(workspace=ws, steps=[steps])
pipeline.validate()
experiment = Experiment(ws, 'Test')
# Fails, locally, works on Azure Compute
run = experiment.submit(pipeline)
# Works both locally and on Azure Compute
src = ScriptRunConfig(source_directory='.', script='train.py', run_config=run_config)
run = experiment.submit(src)
train.py
是一个非常简单的自包含脚本,仅依赖于近似 pi 的 numpy。
本地计算不能与 ML 管道一起使用。请看这个 article.
根据文档,在您的本地机器上进行训练(例如在开发期间)是可能的并且非常容易:how-to-set-up-training-targets
我在我的 windows 电脑上做了如下操作:
定义本地环境:
sklearn_env = Environment("user-managed-env")
sklearn_env.python.user_managed_dependencies = True
# You can choose a specific Python environment by pointing to a Python path
sklearn_env.python.interpreter_path = r'C:\Dev\tutorial\venv\Scripts\python.exe'
而且 compute_target='local'
似乎是将脚本定向到我的本地环境的神奇词。
src = ScriptRunConfig(source_directory=script_folder,
script='train_iris.py',
arguments=[dataset.as_named_input('iris')],
compute_target='local',
environment=sklearn_env)
然后我需要确保我的本地环境具有脚本所需的所有依赖项。
另外我需要在我的本地机器上安装这些包:
- azureml-默认值
- 包装