配置并提交训练作业
在本文中,你将了解如何配置和提交 Azure 机器学习作业来训练模型。代码片段解释了配置和提交训练脚本的关键部分。然后使用示例笔记本之一查找完整的端到端工作示例。
训练时,通常从本地计算机开始,然后扩展到基于云的集群。借助 Azure 机器学习,你可以在各种计算目标上运行脚本,而无需更改训练脚本。
您需要做的就是为一个计算目标中的每个计算目标定义环境 脚本作业配置。然后,当您想要在不同的计算目标上运行训练实验时,请指定该计算的作业配置。
先决条件
什么是脚本运行配置?
ScriptRunConfig 用于配置提交训练作业作为实验的一部分所需的信息。
您使用 ScriptRunConfig 对象提交训练实验。该对象包括:
- 源目录:包含训练脚本的源目录
- 脚本:要运行的训练脚本
- 计算目标:要运行的计算目标
- 环境:运行脚本时使用的环境
- 以及一些附加的可配置选项(有关更多信息,请参阅参考文档)
训练你的模型
对于所有类型的计算目标,提交训练作业的代码模式都是相同的:
- 创建一个要运行的实验
- 创建脚本运行的环境
- 创建 ScriptRunConfig,指定计算目标和环境
- 提交作业
- 等待作业完成
或者您可以:
创建一个实验
在您的工作区中创建一个实验。实验是一个轻量级容器,有助于组织作业提交并跟踪代码。
from azureml.core import Experimentexperiment_name = 'my_experiment'experiment = Experiment(workspace=ws, name=experiment_name)
选择计算目标
计算目标='本地'
我的计算目标
创造环境
Azure 机器学习环境是机器学习训练发生的环境的封装。它们指定围绕训练和评分脚本的 Python 包、Docker 映像、环境变量和软件设置。它们还指定运行时(Python、Spark 或 Docker)。
你可以定义自己的环境,也可以使用 Azure 机器学习策划的环境。策划环境是默认在您的工作区中可用的预定义环境。这些环境由缓存的 Docker 映像支持,从而降低了作业准备成本。请参阅 Azure 机器学习策划环境,了解可用策划环境的完整列表。
对于远程计算目标,您可以使用以下流行的策划环境之一开始:
from azureml.core import Workspace, Environment ws = Workspace.from_config() myenv = Environment.get(workspace=ws, name="AzureML-Minimal")
本地计算目标
python.user_托管_依赖项
from azureml.core import Environment myenv = Environment("user-driven-env") myenv.python.user_driven_dependency = True # 您可以通过指向 Python 路径来选择特定的 Python 环境 # myenv.python.interpreter_path = '/home/ johndoe/miniconda3/envs/myenv/bin/python'
创建脚本作业配置
my_compute_targetmyenvtrain.pyproject_folder
from azureml.core import ScriptRunConfig src = ScriptRunConfig(source_directory=project_folder, script='train.py',compute_target=my_compute_target,environment=myenv) # 设置计算目标 # 如果在本地计算机上运行,请跳过此脚本 script_run_config.run_config.target = my_compute_target
如果您不指定环境,将为您创建默认环境。
参数参数=['--arg1', arg1_val, '--arg2', arg2_val]
最大运行持续时间秒数
指定分布式作业配置
分布式作业配置
有关运行分布式 Horovod、TensorFlow 和 PyTorch 作业的更多信息和示例,请参阅:
提交实验
运行=实验.提交(config=src) 运行.wait_for_completion(show_output=True)
Git 跟踪和集成
当您启动源目录是本地 Git 存储库的训练作业时,有关存储库的信息将存储在作业历史记录中。有关详细信息,请参阅 Azure 机器学习的 Git 集成。
笔记本示例
请参阅这些笔记本,了解为各种训练场景配置作业的示例:
通过阅读使用 Jupyter 笔记本探索此服务一文,了解如何运行笔记本。
故障排除
run.log_list("我的指标名称", my_metric[:N]) run.log_list("我的指标名称", my_metric[N:])