首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在tensorflow-serving中保存和提供模型时出错

在tensorflow-serving中保存和提供模型时出错
EN

Stack Overflow用户
提问于 2019-05-02 10:14:27
回答 2查看 52关注 0票数 1

我应该如何使用tf.saved_model.simple_save保存经过训练的模型,以便可以使用tensorflow服务发出请求

代码语言:javascript
复制
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32, [None, 10])
values = tf.placeholder(tf.float32, [None, 1])

layer = tf.add(tf.matmul(x, w), b)
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=y, logits=layer))
optimize = tf.train.GradientDescentOptimizer(0.001).minimize(cross_entropy)
correct_pred = tf.equal(tf.argmax(layer, 1), tf.argmax(y,1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

with tf.Session() as sess:
  sess.run(init)
  for _ in range(10000):
    batch = mnist.train.next_batch(100)
    sess.run(accuracy, feed_dict={x:batch[0],y:batch[1]})

  !rm -rf "/model"
  export_dir = "/model/1"

  #Problem here
  tf.saved_model.simple_save(
      sess,
      export_dir=export_dir,
      inputs={"x":x},
      outputs={"accuracy":accuracy}
  )

当我运行时:

代码语言:javascript
复制
!saved_model_cli show --dir {export_dir} --all

I get:
MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:

signature_def['serving_default']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['x'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, 784)
        name: Placeholder:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['accuracy'] tensor_info:
        dtype: DT_FLOAT
        shape: ()
        name: Mean_1:0
  Method name is: tensorflow/serving/predict

我的输出是shape(),而不是(-1,x)或那种格式。当我发送一个请求时,我没有得到任何响应。由于准确性是一种操作,因此我没有得到任何响应。如何将其更改为变量,或者如何使用model.outputs中使用的{t.name for t}?

EN

回答 2

Stack Overflow用户

发布于 2019-05-14 11:29:39

simple_save中的输出似乎不正确。它应该是层次化的,但不是准确性。

票数 0
EN

Stack Overflow用户

发布于 2019-06-11 14:42:42

问题出在代码的最后一行,outputs={"accuracy":accuracy}。如果将accuracy替换为“layer”,该问题将得到解决。因此,代码如下所示:

代码语言:javascript
复制
tf.saved_model.simple_save(sess, export_dir=export_dir, inputs={"x":x},
outputs={"Predicted_Output":layer})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55944876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档