0

我正在使用 MERN(Mongodb,Express,React,NodeJS)Stack Code 进行 Aws 机器学习。但问题是,当我上传数据文件(.csv 文件)以进行过程机器学习后,有时过程训练因 TrainingFailed 错误而失败如下:

算法错误:CannotStartContainerError。请确保容器可以使用“docker run train”运行。有关详细信息,请参阅 SageMaker 文档。Dockerfile 的入口点可能没有正确定义,或者缺少权限。

我还在 AWS 账户中设置了以下设置。 在此处输入图像描述

还要在 AWS 账户中授予以下权限:

在此处输入图像描述

在所有设置和权限之后,我还应用了 mongodb 配置设置中的所有键我无法理解我需要处理机器学习。实际上训练没有完成,无法在 s3 存储桶中获取模型工件。它看起来像: 在此处输入图像描述 sagemaker 过程是没有开始 。任何人都可以帮助我吗?

我的 DockerFile 存储在名为 Dockerfile 的项目文件夹中。

FROM ubuntu
RUN apt-get update
RUN apt-get install curl -y
RUN curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
RUN bash nodesource_setup.sh
RUN apt install nodejs -y
WORKDIR /usr/app
COPY . /usr/app/
RUN npm install
EXPOSE 3000
ENTRYPOINT [ "python3.7", "/opt/ml/code/train.py" ]

我还在 Docker Hub 中为 Sagemaker 线性学习器和 xgboost 设置了代码映像,还在 aws 中的 ECR 中创建了存储库。 在此处输入图像描述

我还在 aws 的opt/ml/code/train.py 目录中复制了 train.py 并得到了输出输出:/home/ec2-user/SageMaker/docker_test_folder但仍然出现此错误。

4

1 回答 1

0

您收到的错误意味着 sagemaker 无法启动您的 docker 映像,这是因为您没有正确定义入口点。你可以看看我的回购。基本上,在您的 dockerfile 中,您必须安装一些软件包,创建一个文件夹,比如说/opt/ml/code并将您的训练脚本放入该文件夹中,该脚本将被调用train。该文件应该尊重您可以在此处train阅读的一些指示。

于 2021-01-12T11:53:39.120 回答