ModelArts训练文件系统详解,带你避开线下代码迁线上的所有坑

举报
静河小G 发表于 2020/06/01 14:10:53 2020/06/01
【摘要】 1. 我的代码在ModelArts里的路径到底在哪里?ModelArts的路径分为obs路径和本地路径两部分。obs路径是你的代码上传到云上存储的路径,本地路径是指启动训练容器时,linux系统中的代码路径。如下截图中,obs路径就是/obs-5e8e/homework/。ModelArts会将“代码目录”这个obs路径下的所有文件都下载到训练容器的/home/work/user-job-d...

1. 我的代码在ModelArts里的路径到底在哪里?

ModelArts的路径分为obs路径和本地路径两部分。obs路径是你的代码上传到云上存储的路径,本地路径是指启动训练容器时,linux系统中的代码路径。

如下截图中,obs路径就是/obs-5e8e/homework/。ModelArts会将“代码目录”这个obs路径下的所有文件都下载到训练容器的/home/work/user-job-dir当中,创建一个/home/work/user-job-dir/homework的路径。所以启动文件在训练容器中的路径就是/home/work/user-job-dir/homework/keras-resnet.py。

由此,如果你选择的“代码目录”是/bucket_name/filename1/filename2/,那么在训练容器中的目录就是/home/work/user-job-dir/filename2

 

 

2. 如果我的“启动文件”中,要import“代码目录”里我写的其它文件怎么办?

在开发者当中,python文件需要import自己写的另一个python文件是常规的操作。在线下我们往往可以用相对路径等来import,但是往往这些代码在ModelArts常用框架里边往往会遇到找不到文件的错。那这个问题出在哪里呢?

假设上传到obs中的文件结构为

bucket_name

    |- filename1

        |- filename2

            |- code

                |- main.py

            |- library

                |- custom_lib.py

此时我在UI上填的代码目录/bucket_name/filename1/filename2/,那么训练容器的路径系统就是:

home

    |- work

        |- user-job-dir

            |- filename1

                |- filename2

                    |- code

                        |- main.py

                    |- library

                        |- custom_lib.py

 

此处我如果想在main.pyimport custom_lib.py,用相对路径就很容易报错,那此时该怎么写呢?

我们可以在main.py最开始的地方加入以下代码:

import sys
sys.path.append('/home/work/user-job-dir')

把路径添加上,然后再

import filename2.library.custom_lib

就稳了。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。