如何解决sagemaker定制培训容器中称为什么?
今年春天的某个地方,sagemaker docker映像的行为发生了变化,我找不到现在构造它的方式。
目录结构
/src/some/package
/project1
/some_entrypoint.py
/some_notebook.ipynb
/project2
/another_entrypoint.py
/another_notebook.ipynb
setup.py
Docker文件
请注意,我想转换张量流版本,因此我将FROM
更改为最新版本。这是
重大变化。
# Core
FROM 763104351884.dkr.ecr.eu-west-1.amazonaws.com/tensorflow-training:2.3.0-cpu-py37-ubuntu18.04
COPY . /opt/ml/code/all/
RUN pip install /opt/ml/code/all/
WORKDIR "/opt/ml/code"
Python代码
此代码应开始入口点,例如,在这里,我们有some_notebook.ipynb的代码。我尝试了工作目录+ source_dir(无,“。”或“ ..”),entry_point(有或没有/),依赖项(“ src”)...的所有可能组合...
- 如果存在安装程序,它将尝试将我的项目作为模块调用(python -m some_entrypoint)
- 如果没有,通常找不到我的入口点。我不明白是因为TensorFlow应该将其添加到容器中,对吗?
estimator = TensorFlow(
entry_point='some_entrypoint.py',image_name='ECR.dkr.ecr.eu-west-1.amazonaws.com/overall-project/sagemaker-training:latest',source_dir='.',# dependencies=['../src/'],script_mode=True,train_instance_type='ml.m5.4xlarge',train_instance_count=1,train_max_run=60*60,# seconds * minutes
train_max_wait=60*60,# seconds * minutes. Must be >= train_max_run
hyperparameters=hyperparameters,metric_definitions=metrics,role=role,framework_version='2.0.0',py_version='py3',)
estimator.fit({
'training': f"s3://some-data/"}
#,wait=False
)
理想情况下,我想了解其中的逻辑:给定什么设置又叫什么?
解决方法
运行训练容器时,将执行您的entry_point脚本。
由于笔记本文件和entry_point脚本位于同一目录下,因此您的source_dir
应该只是“。”。
您的entry_point脚本是否会导入默认情况下tensorflow培训容器未安装的任何模块?还可以分享错误的堆栈跟踪信息吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。