如何获取destination为None的OutputFileDatasetConfig自动生成的目标路径
解决方案
核心说明
OutputFileDatasetConfig设置destination=None时的最终路径依赖运行时生成的run-id,因此提交实验/管道前无法拿到生成值,仅能在运行时(脚本内部)或运行结束后通过官方API获取,完全不需要手动拼接路径。
场景1:运行时(实验执行脚本内获取)
直接通过当前运行上下文调用官方API获取:
from azureml.core import Run # 获取当前实验运行的上下文对象 current_run = Run.get_context() # 替换为你实例化OutputFileDatasetConfig时定义的输出名称 output_ds = current_run.get_output_dataset("<你的输出名称>") # 获取生成的完整目标路径 destination_path = output_ds.path # 也可以获取对应的数据存储实例 target_datastore = output_ds.datastore
场景2:实验提交端(运行结束后获取)
如果你是在提交实验的控制脚本/Notebook中查询,等运行完成后通过Run对象获取即可:
# 假设run为你提交实验后得到的运行实例,比如experiment.submit()的返回值 run.wait_for_completion() # 替换为对应的输出名称 output_ds = run.get_output_dataset("<你的输出名称>") full_destination = output_ds.path
优势
所有返回值均为Azure ML官方自动生成的实际路径,即使后续默认存储规则发生变更,API返回值也会同步更新,完全避免手动拼接路径导致的适配问题。
内容的提问来源于stack exchange,提问作者Francois
相关产品推荐
相关产品推荐

