在 sagemaker 定制(培训)容器中叫什么?

What is called within a sagemaker custom (training) container?

某处 spring 贤者 docker 图像的行为发生了变化,我现在找不到构建它的方法。

目录结构

/src/some/package
/project1
    /some_entrypoint.py
    /some_notebook.ipynb
/project2
    /another_entrypoint.py
    /another_notebook.ipynb
setup.py

Docker 文件

请注意,我想转换tensorflow版本,所以我将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(None、'.' 或 '..')、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
)

理想情况下,我想了解其中的逻辑:在什么设置下调用什么?

当训练容器运行时,您的 entry_point 脚本将被执行。

由于您的笔记本文件和 entry_point 脚本位于同一目录下,因此您的 source_dir 应该只是 "."

您的 entry_point 脚本是否会默认导入 tensorflow 训练容器未安装的任何模块?您还可以分享您的错误堆栈跟踪吗?