在AML中使用在on管道中注册的数据集



我遵循SDK v2 Python教程,以便用我自己的资产创建管道作业。我注意到,在本教程中,他们让你使用一个csv文件,可以下载,但我试图使用一个注册的数据集,我已经注册了自己。我面临的问题是,我不知道我需要在哪里指定数据集。

有趣的是,一开始他们创建的数据集是这样的:

credit_data = ml_client.data.create_or_update(credit_data)
print(
f"Dataset with name {credit_data.name} was registered to workspace, the dataset version is {credit_data.version}"
)

但是他们引用这个数据集的唯一部分是在最后一部分,他们#行:

registered_model_name = "credit_defaults_model"
# Let's instantiate the pipeline with the parameters of our choice
pipeline = credit_defaults_pipeline(
# pipeline_job_data_input=credit_data,
pipeline_job_data_input=Input(type="uri_file", path=web_path),
pipeline_job_test_train_ratio=0.2,
pipeline_job_learning_rate=0.25,
pipeline_job_registered_model_name=registered_model_name,
)

对我来说,这意味着我可以像这样使用这个数据(一个已经注册的数据集),问题是我不知道我需要在哪里做更改(我知道在data_prepare .py和下面的代码中,但我不知道在其他地方),我不知道如何设置这个:

%%writefile {data_prep_src_dir}/data_prep.py
...
def main():
"""Main function of the script."""
# input and output arguments
parser = argparse.ArgumentParser()
parser.add_argument("--data", type=str, help="path to input data") # <=== Here, but I don´t know how
parser.add_argument("--test_train_ratio", type=float, required=False, default=0.25)
parser.add_argument("--train_data", type=str, help="path to train data")
parser.add_argument("--test_data", type=str, help="path to test data")
args = parser.parse_args()
...

是否有人有注册数据集的工作经验?

parser.add_argument("——data", type = str,帮助="路径输入data") # & lt;´= = =在这里,但我不知道

路径输入数据,根据文档:

  • 您可以通过ID获得--input-data,您可以在您的培训脚本中访问。

  • 作为mounted_input_path上的argument

例如,尝试从文档中获取以下三个代码片段:

访问训练脚本中的数据集:

parser = argparse.ArgumentParser()
parser.add_argument("--input-data", type=str)
args = parser.parse_args()
run = Run.get_context()
ws = run.experiment.workspace
# get the input dataset by ID
dataset = Dataset.get_by_id(ws, id=args.input_data)

配置训练运行:

src = ScriptRunConfig(source_directory=script_folder,
script='train_titanic.py',
# pass dataset as an input with friendly name 'titanic'
arguments=['--input-data', titanic_ds.as_named_input('titanic')],
compute_target=compute_target,
environment=myenv)

传递mounted_input_path作为参数:

mounted_input_path = sys.argv[1]
mounted_output_path = sys.argv[2]
print("Argument 1: %s" % mounted_input_path)
print("Argument 2: %s" % mounted_output_path)

参考资料:如何创建注册数据集以及如何使用配置具有数据输入和输出的训练运行

最新更新