You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure ML中如何正确指定ScriptRunConfig的source_directory路径?

Azure ScriptRunConfig路径配置问题

问题场景

我在Azure中执行训练脚本,用以下代码配置ScriptRunConfig:

script_config = ScriptRunConfig(
    source_directory='flightdelayMLfolder',
    script='training_script.py',
    environment=env
)

运行实验时(代码如下)触发FileNotFoundError,提示找不到路径/mnt/batch/tasks/shared/LS_root/mounts/clusters/,,,,/code/Users/,,,/outputs/MLfolder:

experiment = Experiment(ws, name='flightdelayMLscript')
run = experiment.submit(config=script_config)
RunDetails(run).show()
run.wait_for_completion()

我的账户目录下有两个文件夹:

/Users/myaccount/outputs
/Users/myaccount/flightdelayMLfolder

尝试指定flightdelayMLfolder的完整集群挂载路径(/mnt/batch/tasks/shared/LS_root/mounts/clusters.....)时,又报错:script path doesn't exist. The script should be inside the project folder。

附文件夹结构截图:
文件夹结构截图

解决方案

核心规则

ScriptRunConfig的source_directory需满足两个要求:

  • 必须是相对于当前运行代码脚本的路径,或是本地可直接访问的绝对路径(不能用集群远端挂载路径)
  • 脚本文件training_script.py必须位于source_directory指定的文件夹内

具体配置方法

根据你的文件夹结构,分两种场景处理:

场景1:当前运行代码的脚本在/Users/myaccount目录下

直接使用相对路径即可,因为flightdelayMLfolder就在当前目录下:

script_config = ScriptRunConfig(
    source_directory='flightdelayMLfolder',
    script='training_script.py',
    environment=env
)

若仍报错,可先在本地验证路径有效性:

import os
print(os.path.exists('flightdelayMLfolder'))  # 输出True则路径有效

场景2:当前运行代码的脚本不在/Users/myaccount目录下

使用本地绝对路径(注意是本地机器路径,而非集群挂载路径):

script_config = ScriptRunConfig(
    source_directory='/Users/myaccount/flightdelayMLfolder',
    script='training_script.py',
    environment=env
)

关键注意事项

  • 不要使用集群远端的/mnt/batch/...路径,Azure ML会自动将本地source_directory同步到集群节点,无需手动指定集群路径
  • 确保training_script.py确实在flightdelayMLfolder文件夹内,文件名拼写完全一致(区分大小写)
  • 若需访问outputs文件夹,在训练脚本内可使用Azure ML的run.outputs_directory获取集群上的输出路径,不要硬编码本地路径

内容的提问来源于stack exchange,提问作者Karthik S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:12:38