Skip to content

Commit 19c561c

Browse files
mvsuspnadiaya
authored andcommitted
Update TF version to 1.11 (aws#442)
* Update TF version to 1.11 * Fixed Keras and Batch Transform notebooks * Fixed Keras Cifar model * Updated TF Pipe Mode Version
1 parent e556e9a commit 19c561c

File tree

11 files changed

+33
-31
lines changed

11 files changed

+33
-31
lines changed

hyperparameter_tuning/tensorflow_mnist/hpo_tensorflow_mnist.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@
176176
"source": [
177177
"estimator = TensorFlow(entry_point='mnist.py',\n",
178178
" role=role,\n",
179-
" framework_version='1.10.0',\n",
179+
" framework_version='1.11.0',\n",
180180
" training_steps=1000, \n",
181181
" evaluation_steps=100,\n",
182182
" train_instance_count=1,\n",

sagemaker-python-sdk/tensorflow_abalone_age_predictor_using_keras/tensorflow_abalone_age_predictor_using_keras.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@
461461
"\n",
462462
"abalone_estimator = TensorFlow(entry_point='abalone.py',\n",
463463
" role=role,\n",
464-
" framework_version='1.10.0',\n",
464+
" framework_version='1.11.0',\n",
465465
" training_steps= 100, \n",
466466
" evaluation_steps= 100,\n",
467467
" hyperparameters={'learning_rate': 0.001},\n",

sagemaker-python-sdk/tensorflow_abalone_age_predictor_using_layers/tensorflow_abalone_age_predictor_using_layers.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@
506506
"\n",
507507
"abalone_estimator = TensorFlow(entry_point='abalone.py',\n",
508508
" role=role,\n",
509-
" framework_version='1.10.0',\n",
509+
" framework_version='1.11.0',\n",
510510
" training_steps= 100, \n",
511511
" evaluation_steps= 100,\n",
512512
" hyperparameters={'learning_rate': 0.001},\n",

sagemaker-python-sdk/tensorflow_distributed_mnist/tensorflow_batch_transform_mnist.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
"\n",
118118
"mnist_estimator = TensorFlow(entry_point='mnist.py',\n",
119119
" role=role,\n",
120-
" framework_version='1.10.0',\n",
120+
" framework_version='1.11.0',\n",
121121
" training_steps=1000, \n",
122122
" evaluation_steps=100,\n",
123123
" train_instance_count=2,\n",
@@ -233,11 +233,11 @@
233233
"outputs": [],
234234
"source": [
235235
"import json\n",
236-
"from urllib.parse import urlparse\n",
236+
"from six.moves.urllib import parse\n",
237237
"\n",
238238
"import boto3\n",
239239
"\n",
240-
"parsed_url = urlparse(transformer.output_path)\n",
240+
"parsed_url = parse.urlparse(transformer.output_path)\n",
241241
"bucket_name = parsed_url.netloc\n",
242242
"prefix = parsed_url.path[1:]\n",
243243
"\n",

sagemaker-python-sdk/tensorflow_distributed_mnist/tensorflow_distributed_mnist.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
"\n",
150150
"mnist_estimator = TensorFlow(entry_point='mnist.py',\n",
151151
" role=role,\n",
152-
" framework_version='1.10.0',\n",
152+
" framework_version='1.11.0',\n",
153153
" training_steps=1000, \n",
154154
" evaluation_steps=100,\n",
155155
" train_instance_count=2,\n",

sagemaker-python-sdk/tensorflow_distributed_mnist/tensorflow_local_mode_mnist.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@
165165
"\n",
166166
"mnist_estimator = TensorFlow(entry_point='mnist.py',\n",
167167
" role=role,\n",
168-
" framework_version='1.10.0',\n",
168+
" framework_version='1.11.0',\n",
169169
" training_steps=10, \n",
170170
" evaluation_steps=10,\n",
171171
" train_instance_count=2,\n",

sagemaker-python-sdk/tensorflow_iris_dnn_classifier_using_estimators/tensorflow_iris_dnn_classifier_using_estimators.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@
305305
"\n",
306306
"iris_estimator = TensorFlow(entry_point='iris_dnn_classifier.py',\n",
307307
" role=role,\n",
308-
" framework_version='1.10.0',\n",
308+
" framework_version='1.11.0',\n",
309309
" output_path=model_artifacts_location,\n",
310310
" code_location=custom_code_upload_location,\n",
311311
" train_instance_count=1,\n",

sagemaker-python-sdk/tensorflow_keras_cifar10/cifar10_cnn.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
import os
1919

2020
import tensorflow as tf
21-
from tensorflow.python.keras.layers import InputLayer, Conv2D, Activation, MaxPooling2D, Dropout, Flatten, Dense
21+
from tensorflow.python.keras.layers import Activation, Conv2D, Dense, Dropout, Flatten, MaxPooling2D
2222
from tensorflow.python.keras.models import Sequential
23-
from tensorflow.python.keras.optimizers import RMSprop
2423
from tensorflow.python.saved_model.signature_constants import PREDICT_INPUTS
24+
from tensorflow.python.training.rmsprop import RMSPropOptimizer
2525

2626
HEIGHT = 32
2727
WIDTH = 32
@@ -30,6 +30,7 @@
3030
NUM_DATA_BATCHES = 5
3131
NUM_EXAMPLES_PER_EPOCH_FOR_TRAIN = 10000 * NUM_DATA_BATCHES
3232
BATCH_SIZE = 128
33+
INPUT_TENSOR_NAME = 'inputs_input' # needs to match the name of the first layer + "_input"
3334

3435

3536
def keras_model_fn(hyperparameters):
@@ -44,10 +45,7 @@ def keras_model_fn(hyperparameters):
4445
"""
4546
model = Sequential()
4647

47-
# TensorFlow Serving default prediction input tensor name is PREDICT_INPUTS.
48-
# We must conform to this naming scheme.
49-
model.add(InputLayer(input_shape=(HEIGHT, WIDTH, DEPTH), name=PREDICT_INPUTS))
50-
model.add(Conv2D(32, (3, 3), padding='same'))
48+
model.add(Conv2D(32, (3, 3), padding='same', name='inputs', input_shape=(HEIGHT, WIDTH, DEPTH)))
5149
model.add(Activation('relu'))
5250
model.add(Conv2D(32, (3, 3)))
5351
model.add(Activation('relu'))
@@ -68,15 +66,13 @@ def keras_model_fn(hyperparameters):
6866
model.add(Dense(NUM_CLASSES))
6967
model.add(Activation('softmax'))
7068

71-
_model = tf.keras.Model(inputs=model.input, outputs=model.output)
69+
opt = RMSPropOptimizer(learning_rate=hyperparameters['learning_rate'], decay=hyperparameters['decay'])
7270

73-
opt = RMSprop(lr=hyperparameters['learning_rate'], decay=hyperparameters['decay'])
74-
75-
_model.compile(loss='categorical_crossentropy',
71+
model.compile(loss='categorical_crossentropy',
7672
optimizer=opt,
7773
metrics=['accuracy'])
7874

79-
return _model
75+
return model
8076

8177

8278
def serving_input_fn(hyperparameters):
@@ -147,7 +143,7 @@ def _input(mode, batch_size, data_dir):
147143
images, labels = iterator.get_next()
148144

149145
# We must use the default input tensor name PREDICT_INPUTS
150-
return {PREDICT_INPUTS: images}, labels
146+
return {INPUT_TENSOR_NAME: images}, labels
151147

152148

153149
def _train_preprocess_fn(image, label):

sagemaker-python-sdk/tensorflow_keras_cifar10/tensorflow_keras_CIFAR10.ipynb

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,18 @@
123123
"outputs": [],
124124
"source": [
125125
"def keras_model_fn(hyperparameters):\n",
126+
" \"\"\"keras_model_fn receives hyperparameters from the training job and returns a compiled keras model.\n",
127+
" The model will be transformed into a TensorFlow Estimator before training and it will be saved in a \n",
128+
" TensorFlow Serving SavedModel at the end of training.\n",
129+
"\n",
130+
" Args:\n",
131+
" hyperparameters: The hyperparameters passed to the SageMaker TrainingJob that runs your TensorFlow \n",
132+
" training script.\n",
133+
" Returns: A compiled Keras model\n",
134+
" \"\"\"\n",
126135
" model = Sequential()\n",
127136
"\n",
128-
" model.add(InputLayer(input_shape=(HEIGHT, WIDTH, DEPTH), name=PREDICT_INPUTS))\n",
129-
" model.add(Conv2D(32, (3, 3), padding='same'))\n",
137+
" model.add(Conv2D(32, (3, 3), padding='same', name='inputs', input_shape=(HEIGHT, WIDTH, DEPTH)))\n",
130138
" model.add(Activation('relu'))\n",
131139
" model.add(Conv2D(32, (3, 3)))\n",
132140
" model.add(Activation('relu'))\n",
@@ -147,15 +155,13 @@
147155
" model.add(Dense(NUM_CLASSES))\n",
148156
" model.add(Activation('softmax'))\n",
149157
" \n",
150-
" _model = tf.keras.Model(inputs=model.input, outputs=model.output)\n",
151-
"\n",
152-
" opt = RMSprop(lr=hyperparameters['learning_rate'], decay=hyperparameters['decay'])\n",
158+
" opt = RMSPropOptimizer(learning_rate=hyperparameters['learning_rate'], decay=hyperparameters['decay'])\n",
153159
"\n",
154-
" _model.compile(loss='categorical_crossentropy',\n",
160+
" model.compile(loss='categorical_crossentropy',\n",
155161
" optimizer=opt,\n",
156162
" metrics=['accuracy'])\n",
157163
"\n",
158-
" return _model"
164+
" return model"
159165
]
160166
},
161167
{
@@ -216,7 +222,7 @@
216222
"\n",
217223
"estimator = TensorFlow(entry_point='cifar10_cnn.py',\n",
218224
" role=role,\n",
219-
" framework_version='1.10.0',\n",
225+
" framework_version='1.11.0',\n",
220226
" hyperparameters={'learning_rate': 1e-4, 'decay':1e-6},\n",
221227
" training_steps=1000, evaluation_steps=100,\n",
222228
" train_instance_count=1, train_instance_type='ml.c4.xlarge')\n",

sagemaker-python-sdk/tensorflow_pipemode_example/tensorflow_pipemode_example.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
"\n",
140140
"tensorflow = TensorFlow(entry_point='pipemode.py',\n",
141141
" role=role,\n",
142-
" framework_version='1.10.0',\n",
142+
" framework_version='1.11.0',\n",
143143
" input_mode='Pipe',\n",
144144
" output_path=model_artifacts_location,\n",
145145
" code_location=custom_code_upload_location,\n",

0 commit comments

Comments
 (0)