2017-07-20 28 views
0

我複製並使用了這段代碼。 url:http://fdahms.com/2017/03/05/tensorflow-serving-jvm-client/雲ml引擎版本創建錯誤3

但部署版本時發生錯誤。

Model validation failed: Serving metagraph must contain exactly one SignatureDef with key: serving_default 

我試圖參照代碼固定到https://github.com/tensorflow/serving/blob/master/tensorflow_serving/example/mnist_saved_model.py

import tensorflow as tf 


x = tf.placeholder(tf.float32, shape=(None)) 
y = tf.placeholder(tf.float32, shape=(None)) 

three = tf.Variable(3, dtype= tf.float32) 
z = tf.scalar_mul(three, x) + y 

import os 
from tensorflow.python.util import compat 

model_version = 1 
path = os.path.join("three_x_plus_y", str(model_version)) 
builder = tf.saved_model.builder.SavedModelBuilder(path) 

legacy_init_op = tf.group(tf.tables_initializer(), name='legacy_init_op') 

tensor_info_x = tf.saved_model.utils.build_tensor_info(x) 
tensor_info_y = tf.saved_model.utils.build_tensor_info(y) 
tensor_info_z = tf.saved_model.utils.build_tensor_info(z) 

prediction_signature = (
     tf.saved_model.signature_def_utils.build_signature_def(
      inputs= {'egg': tensor_info_x, 'bacon': tensor_info_y}, 
      outputs= {'spam': tensor_info_z}, 
      method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME)) 


with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 

    builder.add_meta_graph_and_variables(
     sess,[tf.saved_model.tag_constants.SERVING], 
     signature_def_map= { 
      "magic_model": prediction_signature}, 
     legacy_init_op=legacy_init_op 
     ) 
    builder.save() 

但我得到了同樣的錯誤...

我使用「谷歌雲臺機器上運行引擎」 我需要幫助..謝謝你的閱讀。

回答

1

signature_def_map中的密鑰從magic_model更改爲serving_default

with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 

    builder.add_meta_graph_and_variables(
     sess,[tf.saved_model.tag_constants.SERVING], 
     signature_def_map= { 
      "serving_default": prediction_signature}, 
     legacy_init_op=legacy_init_op 
     ) 
+0

謝謝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1 – Rechard