在TensorFlow JS中按名称获取model.predict中的输出

在TensorFlow JS中按名称获取model.predict中的输出,tensorflow,tensorflow2.0,tensorflow.js,Tensorflow,Tensorflow2.0,Tensorflow.js,我的模型有几个输出 class MyModel(tf.keras.Model): def call(self, input): ... return {"a": a, "b": b, "c": c} a、b和c都被命名为张量。但在转换成TF-JS并在浏览器中运行模型之后,我的输出似乎是一个以任意顺序排列的无名元素列表。所以我不知道如何将训练与发球相匹配。有什么想法吗 我希望能够在JS中执行类似的操作: pred = model.predict(input

我的模型有几个输出

class MyModel(tf.keras.Model):
    def call(self, input):
        ...
        return {"a": a, "b": b, "c": c}
a
b
c
都被命名为张量。但在转换成TF-JS并在浏览器中运行模型之后,我的输出似乎是一个以任意顺序排列的无名元素列表。所以我不知道如何将训练与发球相匹配。有什么想法吗

我希望能够在JS中执行类似的操作:

pred = model.predict(input);
a_pred = pred["a"]
下面是JS控制台中的输出。

更新1:使用
saved\u model\u cli查看模型图
发现
SignatureDef
有意义,并具有预期的不同输出:

The given SavedModel SignatureDef contains the following output(s):
    outputs['a'] tensor_info:
        ...
    outputs['b'] tensor_info:
        ...
    outputs['c'] tensor_info:
        ...
我想问题是转换成TF-JS

更新2:在其中一个示例中,预测也是一个列表,但它似乎是有序的(请参阅)

更新3:通过在JS中打印
model.outputNodes
,我发现我在
model.json
中的输出操作被称为
IDENTITY、IDENTITY\u 1、IDENTITY\u 2
。所以我需要弄清楚如何正确命名它们