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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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