in sample-apps/custom-model/code/model/model.py [0:0]
def export_model(self, model_class, model_name):
"""Exports a TensorFlow model in SavedModel format and uploads it to Amazon S3."""
# TensorFlow 2 only
# MODEL_NAME=model_class.__name__
MODEL_NAME=model_name
Path('/tmp/models').mkdir(exist_ok=True)
MODEL_DIR='/tmp/models/{}'.format(MODEL_NAME)
MODEL_KEY='models/{}-tf{}.tar.gz'.format(MODEL_NAME,tf.__version__.replace('.',''))
MODEL_TAR='/tmp/{}'.format(MODEL_KEY)
# Instantiate model
model = model_class()
# Get input layer details
model_input=model.get_layer(index=0).get_config()
model_input_name = model_input.get('name')
_, w, h, c = model_input.get('batch_input_shape')
model_input_shape = '{},{},{}'.format(w,h,c)
# Export model and create archive
self.remove(MODEL_DIR)
model.save(MODEL_DIR, save_format='tf')
self.remove(MODEL_TAR)
with tarfile.open(MODEL_TAR, mode='w:gz') as archive:
archive.add(MODEL_DIR,MODEL_NAME)
# Upload to Amazon S3
model_uri = self.upload(self.bucket_name,MODEL_KEY,MODEL_TAR)
return model_uri, model_input_name, model_input_shape