import os
import tensorflow as tf
from keras import backend as K
import logging
from tensorflow.python.util import compat
from keras.layers import Conv2D, Dense, Input, add, Activation, AveragePooling2D, GlobalAveragePooling2D
from keras.models import Model
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
K.set_session(tf.Session(config=config))
K.set_learning_phase(0)
def export_savedmodel(model,model_path='./'):
logging.info("Model input: {}, output: {}".format(model.input, model.output))
model_signature = tf.saved_model.signature_def_utils.predict_signature_def(
inputs={'input': model.input}, outputs={'output': model.output})
model_version = 1
export_path = os.path.join(
compat.as_bytes(model_path), compat.as_bytes(str(model_version)))
logging.info("Export the model to {}".format(export_path))
builder = tf.saved_model.builder.SavedModelBuilder(export_path)
builder.add_meta_graph_and_variables(
sess=K.get_session(),
tags=[tf.saved_model.tag_constants.SERVING],
clear_devices=True,
signature_def_map={
tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
model_signature
})
builder.save()
#下面是自定义的网络模型
img_input = Input(shape=input_shape)
output = densenet(img_input,num_classes)
model = Model(img_input, output)
model_path1='./saved_models/4_dzj_model.h5'
model.load_weights(model_path1)
model_path = ''
export_savedmodel(model, model_path)