Azure ML SDK v2管道作业中如何引用已注册数据集
Azure ML SDK v2 管道引用已注册数据集配置方法
没有额外隐藏配置点,总共按以下步骤调整即可:
- 第一步:拉取工作区中已注册的数据集实体
数据集已经注册完成的话,不需要重复跑create_or_update注册逻辑,直接通过ml_client拉取对应版本的数据集实体即可:from azure.ai.ml import MLClient, Input from azure.identity import DefaultAzureCredential # 这部分ml_client初始化逻辑教程里已经配置完成,不用重复编写 ml_client = MLClient( DefaultAzureCredential(), subscription_id="<你的订阅ID>", resource_group_name="<你的资源组名>", workspace_name="<你的工作区名>" ) # 拉取已注册数据集,name填注册时的数据集名称,version填对应版本号,需要调用最新版可以填label="latest" registered_credit_data = ml_client.data.get( name="<你的已注册数据集名称>", version="1" ) - 第二步:修改管道实例化入参
把教程里注释掉的传参行放开,替换原来传在线CSV路径的逻辑,直接传入上一步拉取到的数据集实体即可:
不想提前拉取数据集实体的话,也可以直接在Input里指定已注册数据集的资源路径,效果完全一致:registered_model_name = "credit_defaults_model" pipeline = credit_defaults_pipeline( pipeline_job_data_input=registered_credit_data, pipeline_job_test_train_ratio=0.2, pipeline_job_learning_rate=0.25, pipeline_job_registered_model_name=registered_model_name, )pipeline_job_data_input=Input( type="uri_file", # 数据集是文件夹类型的话改成uri_folder path="azureml://subscriptions/<你的订阅ID>/resourcegroups/<你的资源组名>/workspaces/<你的工作区名>/data/<你的数据集名>/versions/<数据集版本号>" ) - 第三步:data_prep.py组件脚本无需额外修改
你标注的--data参数保持原有写法就行,不用改参数类型,也不需要加任何和数据集注册信息相关的配置。AML运行组件时会自动把传入的已注册数据集挂载/下载到计算节点的本地临时路径,传给--data的就是这个可直接访问的本地路径字符串,脚本里原有的pandas读取CSV、数据处理逻辑完全不用调整。
踩坑提醒:如果注册的是文件夹类型数据集(不是单个CSV文件),记得把Input的type从
uri_file改成uri_folder,脚本里读文件时补全文件夹下对应的CSV文件名即可,其他逻辑不变。
内容的提问来源于stack exchange,提问作者trigonocephalus
相关产品推荐
相关产品推荐

