当我使用simple_save保存模型时,尝试加载模型时出现运行时错误。
要保存的代码是:
session = Session()
inputs = tf.placeholder(dtype=tf.float32, shape=(None, height, width, in_channel_size), name='input_img')
model = Some_Model(inputs, num_classes=no_of_defects, is_training=False)
logits, _ = model.build_model()
predictor = tf.nn.softmax(self.logits, name='logits_to_softmax')
feed_dict = {inputs: inputs}
prediction_probabilities = session.run(self.predictor, feed_dict=feed_dict)
tf.saved_model.simple_save(self.session, path,
inputs={"inputs" : self.inputs},
outputs={"predictor": self.predictor})
Run Code Online (Sandbox Code Playgroud)
要加载的代码是:
tf.saved_model.loader.load(session, tag_constants.SERVING, path)
Run Code Online (Sandbox Code Playgroud)
给出错误:
RuntimeError: MetaGraphDef associated with tags serve could not be found in SavedModel. To inspect available tag-sets in the SavedModel, please use the SavedModel CLI: `saved_model_cli`
Run Code Online (Sandbox Code Playgroud)
当我跑步
saved_model_cli show --dir path --tag_set serve --signature_def serving_default
Run Code Online (Sandbox Code Playgroud)
我懂了
The given SavedModel SignatureDef contains the following input(s):
inputs['inputs'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 512, 1024, 8)
name: input_img:0
The given SavedModel SignatureDef contains the following output(s):
outputs['predictor'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 512, 1024, 25)
name: logits_to_softmax:0
Method name is: tensorflow/serving/predict
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
问题出在加载调用上。它应该是:
tf.saved_model.loader.load(session, [tag_constants.SERVING], path)
Run Code Online (Sandbox Code Playgroud)
tag_constants位于哪里tf.saved_model.tag_constants。
| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |