SageMaker выдает CannotStartContainerError, хотя я указал точку входа - PullRequest
1 голос
/ 31 марта 2020

Я хочу обучить пользовательской модели ML с SageMaker. Модель написана в Python и должна быть отправлена ​​в SageMaker в виде Docker. Вот упрощенная версия моего Dockerfile (модель находится в файле train.py):

FROM amazonlinux:latest

# Install Python 3
RUN yum -y update && yum install -y python3-pip python3-devel gcc && yum clean all

# Install sagemaker-containers (the official SageMaker utils package)
RUN pip3 install --target=/usr/local/lib/python3.7/site-packages sagemaker-containers && rm -rf /root/.cache

# Bring the script with the model to the image 
COPY train.py /opt/ml/code/train.py

ENV SAGEMAKER_PROGRAM train.py

Теперь, если я инициализирую это изображение как оценщик SageMaker, а затем запусту метод fit на этом Оценщик Я получаю следующую ошибку:

"AlgorithmError: CannotStartContainerError. Убедитесь, что контейнер можно запустить с помощью 'docker run train'."

Другими словами: SageMaker не может чтобы попасть в контейнер и запустить файл train.py. Но почему? Способ указания точки входа с помощью ENV SAGEMAKER_PROGRAM train.py рекомендуется в документах пакета sagemaker-container (см. «Как выполняется скрипт внутри контейнера»).

1 Ответ

0 голосов
/ 31 марта 2020

Я нашел подсказку в AWS документах и нашел решение:

ENTRYPOINT ["python3.7", "/opt/ml/code/train.py"]

С этим контейнер будет работать как исполняемый файл .

...