Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: CC-BY-SA-4.0

Prebuilt Amazon SageMaker Docker Images for TensorFlow, MXNet, Chainer, and PyTorch

Amazon SageMaker provides prebuilt Docker images that include deep learning framework libraries and other dependencies needed for training and inference. With the SageMaker Python SDK, you can train and deploy models using one of these popular deep learning frameworks. For instructions on installing and using the SDK, see Amazon SageMaker Python SDK.

The following table provides links to the GitHub repositories that contain the source code and Dockerfiles for each framework and for TensorFlow and MXNet Serving. The instructions linked are for using the Python SDK estimators to run your own training algorithms on Amazon SageMaker and your own models on Amazon SageMaker hosting.

Framework Prebuilt Docker Image Source Code Instructions
TensorFlow Amazon SageMaker TensorFlow Containers Amazon SageMaker TensorFlow Serving Container Using TensorFlow with the SageMaker Python SDK
MXNet Amazon SageMaker MXNet Containers Amazon SageMaker MXNet Serving Container Using MXNet with the SageMaker Python SDK
Chainer Amazon SageMaker Chainer SageMaker Containers Chainer SageMaker Estimators and Models
PyTorch Amazon SageMaker PyTorch Containers SageMaker PyTorch Estimators and Models

If you are not using the Amazon SageMaker Python SDK and one of its estimators to manage the container, you have to retrieve the relevant pre-built container. The Amazon SageMaker prebuilt Docker images are stored in Amazon Elastic Container Registry (Amazon ECR). To pull an image from an Amazon ECR repo or to push an image to an Amazon ECR repo, use fullname registry address of the image. Amazon SageMaker uses the following URL patterns for the Deep Learning container images: + URL pattern for Python 3 images for training with TensorFlow-1.13 and later or for training or serving with MXNet-1.4.1 and later (except for the Elastic Inference containers sagemaker-tensorflow-eia and sagemaker-mxnet-serving-eia): + 763104351884.dkr.ecr.<region>.amazonaws.com/<ECR repo name>:<framework version>-<processing unit type>-<python version>

**Example** of an Amazon ECR URI for the MXNet 1\.4\.1 training image:

 `763104351884.dkr.ecr.us-east-1.amazonaws.com/mxnet-training:1.4.1-gpu-py3`\.

For the supported values for the components in the URL addresses, see the following table.

URL Component Description Supported Values
Specifies the public repository owned by Amazon SageMaker in the Amazon ECR. Python 3 containers for TensorFlow-1.13 and later and MXNet-1.4.1 and later: [See the AWS documentation website for more details] [See the AWS documentation website for more details]
Specifies the framework and links to documentation for the estimators for each of the frameworks that explains how to specify the supported versions. [See the AWS documentation website for more details]
Specifies whether to use a GPU or CPU for training or hosting. [See the AWS documentation website for more details]
Specifies the version of Python used. (Optional if you are using the tensorflow-inference container for serving.) [See the AWS documentation website for more details]

Amazon SageMaker also provides prebuilt Docker images for scikit-learn and Spark ML. For information about Docker images that enable using scikit-learn and Spark ML solutions in Amazon SageMaker, see Prebuilt Amazon SageMaker Docker Images for Scikit-learn and Spark ML.

You can use prebuilt containers to deploy your custom models or models that you have purchased on AWS Marketplace that have been trained in a framework other than Amazon SageMaker. For an overview of the process of bringing the trained model artifacts into Amazon SageMaker and hosting them at an endpoint, see Bring Your Own Pretrained MXNet or TensorFlow Models into Amazon SageMaker.

You can customize these prebuilt containers or extend them to handle any additional functional requirements for your algorithm or model that the prebuilt Amazon SageMaker Docker image doesn’t support. For an example, see Extending Our PyTorch Containers.