在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
。所以我需要弄清楚如何正确命名它们