云社区 博客 博客详情
云社区 博客 博客详情

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

静河小G 发表于 2020-06-01 14:10:53 06-01 14:10
静河小G 发表于 2020-06-01 14:10:53 2020/06/01
0
0

【摘要】 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

就稳了。


登录后可下载附件,请登录或者注册

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

评论 (0)


0/1000
评论

登录后可评论,请 登录注册

评论

您还没有写博客的权限!

温馨提示

您确认删除评论吗?

确定
取消
温馨提示

您确认删除评论吗?

删除操作无法恢复,请谨慎操作。

确定
取消
温馨提示

您确认删除博客吗?

确定
取消

确认删除

您确认删除博客吗?

确认删除

您确认删除评论吗?

温馨提示

登录超时或用户已下线,请重新登录!!!

确定
取消