+
+# Save Model to Minio
+if hvd.rank() == 0:
+ print('Model Summary')
+ model.summary()
+ print('Exporting trained model to Minio Model Repo')
+ base_path = os.environ['MODEL_BASE_PATH']
+
+ # Option 1(Preferred) - Using Keras api and Tensorflow v1.13 version
+ saved_model_path = tf.contrib.saved_model.save_keras_model(model, base_path)
+ print('Model Saved to {} Using new Keras API!!!'.format(saved_model_path))
+ # Option 2 - Tensorflow v1.13+ Builder saved_model api.
+ # builder = saved_model_builder.SavedModelBuilder(base_path)
+
+ # print(model.input)
+ # print(model.outputs)
+
+ # signature = predict_signature_def(inputs={"inputs": model.input},
+ # outputs={t.name:t for t in model.outputs})
+ # print(signature)
+ # K.set_learning_phase(0)
+ # with K.get_session() as sess:
+ # builder.add_meta_graph_and_variables(sess=sess,
+ # tags=[tag_constants.SERVING],
+ # signature_def_map={'predict': signature})
+ # builder.save()
+ # print('Model Saved to S3 Using Builder!!!')
+
+ # Option 3 - Tensorflow v1.13 Will be deprecated in Tensorflow v2
+ # tf.saved_model.simple_save(
+ # keras.backend.get_session(),
+ # export_path,
+ # inputs={'input_image': model.input},
+ # outputs={t.name: t for t in model.outputs})