问题描述
我已遵循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);
但是,即使使用演示网页上的text sample,它也总是返回空数组作为答案。
我做错了什么?
编辑:在Windows10专业版上的tensorflow v.2.3.0,QNA v.1.0.0 node.js v.12.12.0
与tensorflow v.1.5.2相同的行为,在QNA中被指定为依赖项,并在正常的浏览器演示中使用。所有可用的后端引擎(cpu,wasm,本机节点)都一样
事实上,github存储库中的演示不会产生答案,而google上的相同文本和相同问题的答案会产生答案。
那么,在哪里可以下载在Google上运行的代码?
解决方法
虽然很脏,但对于那些想要使用此模型而又不研究导致问题的原因和原因的人,过程如下:
- 从https://github.com/tensorflow/tfjs-models/tree/244d4cdc6eee673ab1d03baccdb06db26bde86fa下载zip
- 提取qna文件夹并在其中打开终端/命令外壳
- 纱线安装
- cd演示
- 纱线安装
- 纱线手表
- 它将在“ 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'});