keras模型文件转化为tensorflow的pb文件,然后java调用
from keras.models import load_model
from keras import backend as K
from keras.models import model_from_config
import tensorflow as tf
model = load_model('models/keras_model_name.model')
def saveKerasModelAsProtobuf(model, outputPath):
tensor_info_x = tf.saved_model.utils.build_tensor_info(model.input)
tensor_info_y = tf.saved_model.utils.build_tensor_info(model.output)
signature = tf.saved_model.signature_def_utils.build_signature_def(
inputs={'input_1': tensor_info_x}, outputs={'softmax_1': tensor_info_y},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME)
legacy_init_op = tf.group(tf.tables_initializer(), name='legacy_init_op')
builder = tf.saved_model.builder.SavedModelBuilder(outputPath)
builder.add_meta_graph_and_variables(
sess=K.get_session(),
tags=[tf.saved_model.tag_constants.SERVING],
# tags=['serving_default'],
signature_def_map={
tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
signature
},
legacy_init_op=legacy_init_op
)
builder.save()
print(signature)
return
saveKerasModelAsProtobuf(model, 'models/model—0507')
https://www.jianshu.com/p/ed3195a4eb87