我有一个张量流会话的代码。
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