文档首页 > > 常见问题> 训练作业> 训练作业日志中提示“No such file or directory”,如何解决?

训练作业日志中提示“No such file or directory”,如何解决?

分享
更新时间:2020/07/14 GMT+08:00

问题分析

使用ModelArts时,用户数据是存放在自己OBS桶中,OBS桶中数据都有对应的路径,例如“bucket_name/dir/image.jpg”。ModelArts训练作业是运行在容器中,如果要访问OBS数据,需要通过数据对应的路径。此提示说明该文件或路径不存在,可能由于您在创建训练作业时,选择的“数据存储位置”有误,或者您编写的代码文件中,访问的路径不正确。

解决方法

  1. 首先,判断日志信息中的路径是否存在。

    通过日志查看到报错的OBS路径,例如“obs-test/ModelArts/examples/”。有两种方法判断是否存在。

    • 通过OBS管理控制台,肉眼查找判断。

      使用当前账户登录OBS管理控制台,通过日志中显示的OBS路径,去查找对应的OBS桶、文件夹、文件是否存在。例如“obs-test/ModelArts/examples/”,去查找是否存在“obs-test”桶, 且在此OBS桶内是否存在“ModelArts/examples/”的文件夹。

      • 路径存在,请执行2
      • 路径不存在,请在训练作业中更换为一个可用的OBS桶路径。
    • 创建Notebook,通过接口判断路径是否存在。在已有的Notebook实例,或者创建一个Notebook,执行如下命令,检查路径是否存在。
      import moxing as mox
      mox.file.exists('obs://obs-test/ModelArts/examples/')
      • 路径存在,请执行2
      • 路径不存在,请在训练作业中更换为一个可用的OBS桶路径。
  2. 在确认路径存在后,确认下OBS路径是否与ModelArts在同一区域,查看OBS桶是否属于其他账号。

    进入ModelArts管理控制台,查看其所在区域。然后再进入OBS管理控制台,查看您使用的OBS桶所在的区域。查看是否在同一区域,查看OBS桶是否属于其他账号。

    • 是,请执行3
    • 否,请使用同一个账号在ModelArts同一区域的OBS中新建桶和文件夹,并将所需的数据上传至此OBS桶中。
  3. 在训练作业的脚本中,检查代码文件中读取OBS路径接口是否正确。

    由于ModelArts不能直接使用访问容器本地路径的方式去访问路径。推荐使用MoXing API来读写OBS文件及容器中本地文件。

    如果代码写作正确,仍然无法解决训练作业的错误,请提交工单,由专业工程师为您分析并解决问题。

分享:

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问