tensorflow服务:运行sesion.Run使用tensorflow服务模型服务器进行操作(如提取和提要)

时间:2017-07-03 15:37:43

标签: tensorflow tensorflow-serving

我有一个张量流会话的代码。

sess = tf.Session()
saver = tf.train.import_meta_graph('./back/model.ckpt.meta')
saver.restore(sess, tf.train.latest_checkpoint('./back'))

最后,我使用以下命令调用session.Run

for filename in filenames:
  with tf.gfile.GFile(filename, "r") as f:
    image = f.read()
    initial_state = sess.run(fetches="lstm/initial_state:0",
                         feed_dict={"image_feed:0": image})

让我们说我保存上面的模型并通过tensorflow服务加载它。 如何获得初始状态调用下面提到的命令

   sess.run(fetches="lstm/initial_state:0",
                         feed_dict={"image_feed:0": image})

我可以使用tensorflow服务调用此命令吗? Tensorflow服务有一个用于预测和分类的API列表,但如果我需要在session.Run中提供我自己的操作,如上例所示,我该如何实现呢?

要在这里编辑

找到解决方案,分别输入和获取输入和输出

我找到了答案:

这是代码。 feed_dict和fetch是输入和输出相应的

def export():
sess = tf.Session()
saver = tf.train.import_meta_graph('./back/model.ckpt.meta')
saver.restore(sess, tf.train.latest_checkpoint('./back'))
graph = tf.get_default_graph()
out_classes = graph.get_tensor_by_name('lstm/initial_state:0')
outputFromGraph = {'lstm/initial_state:0': 
tf.saved_model.utils.build_tensor_info(out_classes)}
input_classes = graph.get_tensor_by_name('image_feed:0')
inputFromGraph = {'image_feed:0': 
tf.saved_model.utils.build_tensor_info(input_classes)}
legacy_init_op = tf.group(tf.tables_initializer(), 
name='legacy_init_op')
prediction_signature = (
    tf.saved_model.signature_def_utils.build_signature_def(
        inputs=inputFromGraph,
        outputs=outputFromGraph, method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME
    ))
builder.add_meta_graph_and_variables(
        sess, [tag_constants.SERVING],
        signature_def_map={
            'predict_images': prediction_signature
        },
        legacy_init_op=legacy_init_op)
builder.save()
return

0 个答案:

没有答案