tensorflow.js - node.js 中的 TensorFlow QNA 模型返回空数组
问题描述
我遵循了https://github.com/tensorflow/tfjs-models/tree/master/qna设置:
require('@tensorflow/tfjs-node');
const tf = require('@tensorflow/tfjs');
const QNA = require('@tensorflow-models/qna');
await tf.ready();
let model = await QNA.load();
console.log('\n\n model loaded');
let answers = await model.findAnswers(question, text);
但它总是返回空数组作为答案,即使是来自演示网页的文本示例。
我做错了什么?
编辑:tensorflow v.2.3.0,QNA v.1.0.0 node.js v.12.12.0,windows10专业版
与 tensorflow v.1.5.2 相同的行为,在 QNA 中指定为依赖项,并在工作浏览器演示中使用。所有可用的后端引擎(cpu、wasm、本机节点)都一样
事实上,来自 github 存储库的 demo 不会产生答案,而 google 上相同文本和相同问题的 demo 会产生答案。
那么,有没有可以下载在 google 上运行的代码的地方?
解决方案
虽然它很脏,但对于那些想要使用此模型而不深入研究导致问题的原因和原因的人,过程如下:
- 从https://github.com/tensorflow/tfjs-models/tree/244d4cdc6eee673ab1d03baccdb06db26bde86fa下载 zip
- 提取 qna 文件夹并在其中打开终端/命令外壳
- 纱线安装
- 光盘演示
- 纱线安装
- 纱表
- 它将在“qna”根目录下生成 demo/node_modules/@tensorflow-models/qna 文件夹。
- cd node_modules/@tensorflow-models/qna 使用在那里找到的“dist”文件夹作为分发而不是@tensorflow-models/qna
另外,提示:从 https://tfhub.dev/tensorflow/tfjs-model/mobilebert/1 “.JS” 选项卡上下载训练模型数据的分布(解压缩时为 100Mbytes)并从本地磁盘使用它。它将大大减少模型加载时间(从超过 90 秒到 3 秒)
let folder = process.cwd();
// load from local file takes about 3260 ms
let model = await QNA.load({modelUrl: 'file://'+ folder +'/mobilebert/model.json'});
推荐阅读
- c# - 使用 asp.net c# 代码增加 WebBrowser 的高度然后出现错误:参数无效
- react-native - 为什么 expo sdk 34 的应用程序大小比之前的 sdks 大?
- javascript - 同一个promise实例可以有多个thenable吗?
- javascript - 尝试整合 dialogflow 和 firebase
- python-3.x - 这个示例数据清理代码是否更新了 pandas 数据框?
- django - 通过“忘记密码”链接使用 Kiwi 的密码重置显示 500 Internal Server Error。这是 common.py 设置的问题吗?
- mysql - MySQL:使用子查询返回 null 错误
- swift - 应用程序在将主上下文保存到子上下文的父级时不断崩溃
- php - 如何在 laravel 中的 C:\media 等外部目录中更改媒体上传/存储文件?
- django - 访问通过表单上的 OneToOneField 模型链接的模型的数据