如何从节点中的 TensorFlow.js 获取最可能的类名

How to get most probable className from TensorFlow.js in Node

我想做的事情:我想用mobileNet从TensorFlow.js图像分类中得到概率最高的className。我想将类名作为字符串获取。

问题: 我不知道如何将 className 隔离为字符串。有这个命令吗?或者你知道如何解决我的问题吗?

我的代码:

theAi();

async function theAi() {
    const tf = require('@tensorflow/tfjs'),
    mobilenet = require('@tensorflow-models/mobilenet'),
    tfnode = require('@tensorflow/tfjs-node'),
    fs = require('fs-extra');

    const imageBuffer = await fs.readFile("./jesus.jpg"),
    tfimage = tfnode.node.decodeImage(imageBuffer),
    mobilenetModel = await mobilenet.load();  

    const results = await mobilenetModel.classify(tfimage);
    console.log(results);
};

并且输出:

[
  {
    className: 'chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour',
    probability: 0.5979475378990173
  },
  { className: 'vestment', probability: 0.14261281490325928 },
  { className: 'fountain', probability: 0.03441018983721733 }
]

所以在这种情况下,我想获取字符串 ('chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour')。

这是一个纯粹的 javascript 问题。如果你得到这个结果,你可以搜索 m 最大值:

const maxClass = result.reduce(function(prev, current) {
    return (prev.probability > current.probability) ? prev : current;
})["className"];