今年春天的某个地方,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”)...的所有可能组合...
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
)
理想情况下,我想了解其中的逻辑:给定什么设置又叫什么?
答案 0 :(得分:0)
运行训练容器时,将执行您的entry_point脚本。
由于笔记本文件和entry_point脚本位于同一目录下,因此您的source_dir
应该只是“。”。
您的entry_point脚本是否会导入默认情况下tensorflow培训容器未安装的任何模块?还可以分享错误的堆栈跟踪信息吗?