| 
1 |  | -===============================  | 
2 |  | -SageMaker TensorFlow Containers  | 
3 |  | -===============================  | 
 | 1 | +=====================================  | 
 | 2 | +SageMaker TensorFlow Training Toolkit  | 
 | 3 | +=====================================  | 
4 | 4 | 
 
  | 
5 |  | -SageMaker TensorFlow Containers is an open source library for making the  | 
 | 5 | +The SageMaker TensorFlow Training Toolkit is an open source library for making the  | 
6 | 6 | TensorFlow framework run on `Amazon SageMaker <https://aws.amazon.com/documentation/sagemaker/>`__.  | 
7 | 7 | 
 
  | 
8 | 8 | This repository also contains Dockerfiles which install this library, TensorFlow, and dependencies  | 
9 | 9 | for building SageMaker TensorFlow images.  | 
10 | 10 | 
 
  | 
11 |  | -For information on running TensorFlow jobs on SageMaker: `Python  | 
12 |  | -SDK <https://github.com/aws/sagemaker-python-sdk>`__.  | 
 | 11 | +For information on running TensorFlow jobs on SageMaker:  | 
13 | 12 | 
 
  | 
14 |  | -For notebook examples: `SageMaker Notebook  | 
15 |  | -Examples <https://github.com/awslabs/amazon-sagemaker-examples>`__.  | 
 | 13 | +- `SageMaker Python SDK documentation <https://sagemaker.readthedocs.io/en/stable/using_tf.html>`__  | 
 | 14 | +- `SageMaker Notebook Examples <https://github.com/awslabs/amazon-sagemaker-examples>`__  | 
16 | 15 | 
 
  | 
17 | 16 | Table of Contents  | 
18 | 17 | -----------------  | 
@@ -51,131 +50,48 @@ Building your Image  | 
51 | 50 | utilizes Docker containers to run all training jobs & inference endpoints.  | 
52 | 51 | 
 
  | 
53 | 52 | The Docker images are built from the Dockerfiles specified in  | 
54 |  | -`Docker/ <https://github.com/aws/sagemaker-tensorflow-containers/tree/master/docker>`__.  | 
 | 53 | +`docker/ <https://github.com/aws/sagemaker-tensorflow-containers/tree/master/docker>`__.  | 
55 | 54 | 
 
  | 
56 |  | -The Docker files are grouped based on TensorFlow version and separated  | 
 | 55 | +The Dockerfiles are grouped based on TensorFlow version and separated  | 
57 | 56 | based on Python version and processor type.  | 
58 | 57 | 
 
  | 
59 |  | -The Docker files for TensorFlow 2.0 are available in the  | 
60 |  | -`tf-2 <https://github.com/aws/sagemaker-tensorflow-container/tree/tf-2>`__ branch, in  | 
61 |  | -`docker/2.0.0/ <https://github.com/aws/sagemaker-tensorflow-container/tree/tf-2/docker/2.0.0>`__.  | 
 | 58 | +The Dockerfiles for TensorFlow 2.0+ are available in the  | 
 | 59 | +`tf-2 <https://github.com/aws/sagemaker-tensorflow-container/tree/tf-2>`__ branch.  | 
62 | 60 | 
 
  | 
63 |  | -The Docker images, used to run training & inference jobs, are built from  | 
64 |  | -both corresponding "base" and "final" Dockerfiles.  | 
65 |  | - | 
66 |  | -Base Images  | 
67 |  | -~~~~~~~~~~~  | 
68 |  | - | 
69 |  | -The "base" Dockerfile encompass the installation of the framework and all of the dependencies  | 
70 |  | -needed. It is needed before building image for TensorFlow 1.8.0 and before.  | 
71 |  | -Building a base image is not required for images for TensorFlow 1.9.0 and onwards.  | 
72 |  | - | 
73 |  | -Tagging scheme is based on <tensorflow_version>-<processor>-<python_version>. (e.g. 1.4  | 
74 |  | -.1-cpu-py2)  | 
75 |  | - | 
76 |  | -All "final" Dockerfiles build images using base images that use the tagging scheme  | 
77 |  | -above.  | 
78 |  | - | 
79 |  | -If you want to build your "base" Docker image, then use:  | 
80 |  | - | 
81 |  | -::  | 
82 |  | - | 
83 |  | -    # All build instructions assume you're building from the same directory as the Dockerfile.  | 
84 |  | - | 
85 |  | -    # CPU  | 
86 |  | -    docker build -t tensorflow-base:<tensorflow_version>-cpu-<python_version> -f Dockerfile.cpu .  | 
87 |  | - | 
88 |  | -    # GPU  | 
89 |  | -    docker build -t tensorflow-base:<tensorflow_version>-gpu-<python_version> -f Dockerfile.gpu .  | 
90 |  | - | 
91 |  | -::  | 
92 |  | - | 
93 |  | -    # Example  | 
94 |  | - | 
95 |  | -    # CPU  | 
96 |  | -    docker build -t tensorflow-base:1.4.1-cpu-py2 -f Dockerfile.cpu .  | 
97 |  | - | 
98 |  | -    # GPU  | 
99 |  | -    docker build -t tensorflow-base:1.4.1-gpu-py2 -f Dockerfile.gpu .  | 
100 |  | - | 
101 |  | -Final Images  | 
102 |  | -~~~~~~~~~~~~  | 
103 |  | - | 
104 |  | -The "final" Dockerfiles encompass the installation of the SageMaker specific support code.  | 
105 |  | - | 
106 |  | -For images of TensorFlow 1.8.0 and before, all "final" Dockerfiles use `base images for building <https://github  | 
107 |  | -.com/aws/sagemaker-tensorflow-containers/blob/master/docker/1.4.1/final/py2/Dockerfile.cpu#L2>`__.  | 
108 |  | - | 
109 |  | -These "base" images are specified with the naming convention of  | 
110 |  | -tensorflow-base:<tensorflow_version>-<processor>-<python_version>.  | 
111 |  | - | 
112 |  | -Before building "final" images:  | 
113 |  | - | 
114 |  | -Build your "base" image. Make sure it is named and tagged in accordance with your "final"  | 
115 |  | -Dockerfile. Skip this step if you want to build image of Tensorflow Version 1.9.0 and above.  | 
116 |  | - | 
117 |  | -If you want to build "final" Docker images, for versions 1.6 and above, you will first need to download the appropriate tensorflow pip wheel, then pass in its location as a build argument. These can be obtained from pypi. For example, the files for 1.6.0 are here:  | 
118 |  | - | 
119 |  | -https://pypi.org/project/tensorflow/1.6.0/#files  | 
120 |  | -https://pypi.org/project/tensorflow-gpu/1.6.0/#files  | 
121 |  | - | 
122 |  | -Note that you need to use the tensorflow-gpu wheel when building the GPU image.  | 
123 |  | - | 
124 |  | -Then run:  | 
125 |  | - | 
126 |  | -::  | 
127 |  | - | 
128 |  | -    # All build instructions assumes you're building from the same directory as the Dockerfile.  | 
129 |  | - | 
130 |  | -    # CPU  | 
131 |  | -    docker build -t <image_name>:<tag> --build-arg py_version=<py_version> --build-arg framework_installable=<path to tensorflow binary> -f Dockerfile.cpu .  | 
132 |  | - | 
133 |  | -    # GPU  | 
134 |  | -    docker build -t <image_name>:<tag> --build-arg py_version=<py_version> --build-arg framework_installable=<path to tensorflow binary> -f Dockerfile.gpu .  | 
135 |  | - | 
136 |  | -::  | 
137 |  | - | 
138 |  | -    # Example  | 
139 |  | -    docker build -t preprod-tensorflow:1.6.0-cpu-py2 --build-arg py_version=2  | 
140 |  | -    --build-arg framework_installable=tensorflow-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl -f Dockerfile.cpu .  | 
141 |  | - | 
142 |  | -The dockerfiles for 1.4 and 1.5 build from source instead, so when building those, you don't need to download the wheel beforehand:  | 
 | 61 | +To build the images, first copy the files under  | 
 | 62 | +`docker/build_artifacts/ <https://github.com/aws/sagemaker-tensorflow-container/tree/tf-2/docker/build_artifacts>`__  | 
 | 63 | +to the folder container the Dockerfile you wish to build.  | 
143 | 64 | 
 
  | 
144 | 65 | ::  | 
145 | 66 | 
 
  | 
146 |  | -    # All build instructions assumes you're building from the same directory as the Dockerfile.  | 
147 |  | - | 
148 |  | -    # CPU  | 
149 |  | -    docker build -t <image_name>:<tag> -f Dockerfile.cpu .  | 
 | 67 | +    # Example for building a TF 2.1 image with Python 3  | 
 | 68 | +    cp docker/build_artifacts/* docker/2.1.0/py3/.  | 
150 | 69 | 
 
  | 
151 |  | -    # GPU  | 
152 |  | -    docker build -t <image_name>:<tag> -f Dockerfile.gpu .  | 
 | 70 | +After that, go to the directory containing the Dockerfile you wish to build,  | 
 | 71 | +and run ``docker build`` to build the image.  | 
153 | 72 | 
 
  | 
154 | 73 | ::  | 
155 | 74 | 
 
  | 
156 |  | -    # Example  | 
157 |  | - | 
158 |  | -    # CPU  | 
159 |  | -    docker build -t preprod-tensorflow:1.4.1-cpu-py2 -f Dockerfile.cpu .  | 
160 |  | - | 
161 |  | -    # GPU  | 
162 |  | -    docker build -t preprod-tensorflow:1.4.1-gpu-py2 -f Dockerfile.gpu .  | 
 | 75 | +    # Example for building a TF 2.1 image for CPU with Python 3  | 
 | 76 | +    cd docker/2.1.0/py3  | 
 | 77 | +    docker build -t tensorflow-training:2.1.0-cpu-py3 -f Dockerfile.cpu .  | 
163 | 78 | 
 
  | 
 | 79 | +Don't forget the period at the end of the ``docker build`` command!  | 
164 | 80 | 
 
  | 
165 | 81 | Running the tests  | 
166 | 82 | -----------------  | 
167 | 83 | 
 
  | 
168 |  | -Running the tests requires installation of the SageMaker TensorFlow Container code and its test  | 
 | 84 | +Running the tests requires installation of the SageMaker TensorFlow Training Toolkit code and its test  | 
169 | 85 | dependencies.  | 
170 | 86 | 
 
  | 
171 | 87 | ::  | 
172 | 88 | 
 
  | 
173 |  | -    git clone https://github.com/aws/sagemaker-tensorflow-containers.git  | 
174 |  | -    cd sagemaker-tensorflow-containers  | 
 | 89 | +    git clone https://github.com/aws/sagemaker-tensorflow-container.git  | 
 | 90 | +    cd sagemaker-tensorflow-container  | 
175 | 91 |     pip install -e .[test]  | 
176 | 92 | 
 
  | 
177 | 93 | Tests are defined in  | 
178 |  | -`test/ <https://github.com/aws/sagemaker-tensorflow-containers/tree/master/test>`__  | 
 | 94 | +`test/ <https://github.com/aws/sagemaker-tensorflow-container/tree/master/test>`__  | 
179 | 95 | and include unit, integration and functional tests.  | 
180 | 96 | 
 
  | 
181 | 97 | Unit Tests  | 
 | 
0 commit comments