如何通过AzureML SDK v2编程获取指标超阈值的实验
检索AzureML中作业Y指标达标实验名称的方法
步骤说明
- 连接到AzureML工作区
- 遍历所有实验,获取每个实验下的流水线运行记录
- 定位流水线中的作业Y,提取目标指标(如F1)
- 筛选出指标值大于设定阈值的实验名称
代码实现(使用AzureML Python SDK v2)
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential # 初始化工作区连接 ml_client = MLClient( credential=DefaultAzureCredential(), subscription_id="你的订阅ID", resource_group_name="你的资源组名称", workspace_name="你的工作区名称", ) # 设定参数 target_job_name = "作业Y" target_metric = "F1" threshold = 0.8 # 自定义阈值 # 存储符合条件的实验名称 qualified_experiments = [] # 遍历所有实验 for experiment in ml_client.experiments.list(): # 获取实验下的所有流水线运行 for run in ml_client.jobs.list(experiment_name=experiment.name): # 仅处理流水线类型的作业 if run.type == "pipeline": # 遍历流水线中的子作业 for child_job in run.children: if child_job.name == target_job_name: # 读取作业的指标 metrics = ml_client.jobs.get(child_job.id).metrics if target_metric in metrics: metric_value = metrics[target_metric] if metric_value > threshold: qualified_experiments.append(experiment.name) # 避免同一实验多次添加 break break # 输出结果 print("符合条件的实验名称:") for exp_name in set(qualified_experiments): print(exp_name)
关键说明
- 确保已安装AzureML SDK v2:
pip install azure-ai-ml - 若使用服务 principal 认证,需替换
DefaultAzureCredential()为对应认证方式 - 指标名称需与作业中记录的完全一致(区分大小写)
- 代码中通过
set(qualified_experiments)去重,避免同一实验因多次运行被重复添加
内容的提问来源于stack exchange,提问作者Jau A
相关产品推荐
相关产品推荐

