Tensorflow服务错误:“数据丢失:无法将save_model.pb解析为二进制协议”

时间:2018-12-17 15:07:42

标签: python python-2.7 tensorflow tensorflow-serving

我曾与Google合作,训练了一个简单的mnist示例模型,以使自己熟悉tensorflow服务,但我的tensorflow模型服务器无法读取我的protobuf文件。真的很奇怪

我试图加载一个不同的protobuf模型,该模型是从github下载的,并且可以正常工作,这意味着我的tensorflow服务器正在运行。之后,我使用了一个keras模型,并使用tf.saved_model.simple_save()函数将其导出,并且可以正常工作。最后,我尝试将自己的导出protobuf模型导入到我的tensorflow服务器无法读取的代码中,然后一切正常。

我希望有人能帮助我。

完整的错误消息:Loading servable: {name: mnist_test version: 1} failed: Data loss: Can't parse /home/models/mnist_test/1/saved_model.pb as binary proto

我的导出代码:

builder = tf.saved_model.builder.SavedModelBuilder(export_path)
model_inputs = tf.saved_model.utils.build_tensor_info(X_placeholder)
model_outputs = tf.saved_model.utils.build_tensor_info(output)

signature_definition = tf.saved_model.signature_def_utils.build_signature_def(
  inputs={'inputs': model_inputs},
  outputs={'outputs': model_outputs},
  method_name= tf.saved_model.signature_constants.PREDICT_METHOD_NAME)

builder.add_meta_graph_and_variables(
  sess, [tf.saved_model.tag_constants.SERVING],
  signature_def_map={tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature_definition})

builder.save()

0 个答案:

没有答案