Tensorflow Js 在注册表中找不到后端 blazeface

我在尝试检测图像中是否有人脸,因此使用了tensorflow JS和blazeface模型。但是在获取代码后,出现了以下错误:

Error: No backend found in registry.    at Engine.getSortedBackends (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2928:19)    at Engine.initializeBackendsAndReturnBest (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2937:35)    at Engine.get [as backend] (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:2743:31)    at Engine.makeTensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:3268:35)    at makeTensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4087:19)    at tensor (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4136:12)    at Object.decodeWeights (/home/saren/project/spark/node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js:4400:27)    at GraphModel.loadSync (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:7410:34)    at GraphModel.<anonymous> (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:7385:52)    at step (/home/saren/project/spark/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:77:23)

这是我的代码(我从文档中复制粘贴的):

module.exports = {    blazeface: require('@tensorflow-models/blazeface'),    async detectFace(imageLink) {        const model = await this.blazeface.load();        const returnTensors = false;        const predictions = await model.estimateFaces(imageLink, returnTensors);        if (predictions.length > 0) {            for (let i = 0; i < predictions.length; i++) {            const start = predictions[i].topLeft;            const end = predictions[i].bottomRight;            const size = [end[0] - start[0], end[1] - start[1]];                    // 在每个检测到的人脸上面渲染一个矩形。            ctx.fillRect(start[0], start[1], size[0], size[1]);            }        }    }}

请记住,错误来自于以下这行代码 const model = await this.blazeface.load();

很多人提到版本问题,所以这是我的package.json的一个例子

"dependencies": {    "@tensorflow-models/blazeface": "0.0.6",    "@tensorflow/tfjs": "^3.0.0",    "@tensorflow/tfjs-backend-cpu": "^3.0.0",    "@tensorflow/tfjs-backend-webgl": "^3.0.0",    "@tensorflow/tfjs-converter": "^3.0.0",    "@tensorflow/tfjs-core": "^3.0.0"  }

我使用的是Node版本14.8.0和npm版本6.14.7。这段代码应该在服务器上运行,因此我不希望它在前端工作。


回答:

看起来你可以做两件事。

安装@tensorflow/tfjs-node并使用 tf: require("@tensorflow/tfjs-node"),或者你可以使用 this.tf.getBackend();(即使是使用这个 tf: require("@tensorflow/tfjs")

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注