Python 如何在tensorflow SavedModel中具有多个输出?

Python 如何在tensorflow SavedModel中具有多个输出?,python,tensorflow,Python,Tensorflow,因此,整个故事是,我试图将一个.pb冻结的推理图转换为一个tflite模型,为此,我首先尝试创建一个SavedModel。下面是我尝试使用的代码: 将tf.Session(graph=tf.graph())作为sess的: #name=”“对于确保我们不会得到虚假的前缀非常重要 tf.import_graph_def(graph_def,name=”“) g=tf.get_default_graph() inp=g.通过名称获取张量(“图像张量:0”) out={g.get_tensor_by_

因此,整个故事是,我试图将一个.pb冻结的推理图转换为一个tflite模型,为此,我首先尝试创建一个SavedModel。下面是我尝试使用的代码:

将tf.Session(graph=tf.graph())作为sess的
:
#name=”“对于确保我们不会得到虚假的前缀非常重要
tf.import_graph_def(graph_def,name=”“)
g=tf.get_default_graph()
inp=g.通过名称获取张量(“图像张量:0”)
out={g.get_tensor_by_name('num_detections:0')},{g.get_tensor_by_name('detection_box:0')},{g.get_tensor_by_name('detection_scores:0')},{g.get_tensor u by_name('detection_classes:0')}
sigs[signature_constants.DEFAULT_SERVING_signature_DEF_KEY]=\
tf.saved_model.signature_def_utils.predict_signature_def(
{“输入”:inp},{“输出”:out})
添加元图和变量(SES,
[tag_constants.SERVING],
签名_def_map=sigs)
builder.save()

我没有正确地执行“out”,但是我不知道如何为SavedModel签名包含更多输出,或者如果可能的话?

我认为不需要将集合提供给输出字典,而是需要指定该字典中的所有单个输出张量。像这样的事情对我很有用

with tf.Session(graph=tf.Graph()) as sess:
    # name="" is important to ensure we don't get spurious prefixing
    tf.import_graph_def(graph_def, name="")
    g = tf.get_default_graph()
    inp = g.get_tensor_by_name("input_image:0")
    out1 = g.get_tensor_by_name("output_1:0")
    out2 = g.get_tensor_by_name("output_2:0")
    out3 = g.get_tensor_by_name("output_3:0")
    sigs[signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY] = \
        tf.saved_model.signature_def_utils.predict_signature_def(
            {"in": inp}, {"out1": out1, "out2": out2, "out3": out3 })

    builder.add_meta_graph_and_variables(sess,
                                         [tag_constants.SERVING],
                                         signature_def_map=sigs)

    builder.save()
我还在学习TF,但希望这能有所帮助