如何使用AzureML Python SDK直接记录与获取运行参数?
AzureML Python SDK 原生运行参数记录与获取方案
存在直接使用azureml库实现参数记录、查询的原生方法,无需依赖MLflow,具体用法如下:
记录运行参数
你平时用来记录指标的Run对象自带参数记录能力,对应方法和你用的Run.log(指标记录)同属实验记录接口:
- 单个参数记录:调用
run.log_param(参数名, 参数值),和mlflow.log_param效果完全一致 - 批量记录参数:调用
run.log_parameters(参数字典),适合一次性传入多组超参
示例代码:
from azureml.core import Run # 获取当前训练作业的运行上下文 run = Run.get_context() # 记录学习率、动量这类运行参数 run.log_param("learning_rate", 1e-4) run.log_param("momentum", 0.9) # 批量记录其他超参 run.log_parameters({ "batch_size": 64, "num_epochs": 30, "weight_decay": 1e-5 })
调用上述方法记录的参数,会和MLflow记录的参数一样,直接展示在AzureML Studio Dashboard的参数区域,也就是你截图里的右下角位置。
注意区分几个容易混淆的记录接口,避免内容打错展示位置:
run.log()/run.log_list():用于记录随训练过程变化的指标(比如每轮epoch的loss、准确率),会展示在指标面板,支持绘制趋势曲线run.log_param()/run.log_parameters():用于记录固定的运行超参(学习率、动量、batch size等),展示在参数区域run.tag():用于给运行打自定义筛选标签,比如标记数据集版本、实验分组run.add_properties():用于记录不可修改的运行元数据,比如代码提交哈希、运行环境版本
获取已记录的参数
拿到对应作业的Run对象后,直接调用run.get_parameters()方法,即可返回所有已记录参数的键值对字典,不需要调用MLflow接口。
如果你使用的是AzureML Python SDK v2版本,提交作业时直接在Job实体的parameters字段传入参数字典即可完成记录,查询时直接访问Job对象的parameters属性就能拿到所有参数,展示效果和v1完全一致。
内容的提问来源于stack exchange,提问作者dkapur17
相关产品推荐
相关产品推荐

