首页 > 解决方案 > 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 上运行的代码的地方?

标签: tensorflow.js

解决方案


虽然它很脏,但对于那些想要使用此模型而不深入研究导致问题的原因和原因的人,过程如下:

  1. 从https://github.com/tensorflow/tfjs-models/tree/244d4cdc6eee673ab1d03baccdb06db26bde86fa下载 zip
  2. 提取 qna 文件夹并在其中打开终端/命令外壳
  3. 纱线安装
  4. 光盘演示
  5. 纱线安装
  6. 纱表
  • 它将在“qna”根目录下生成 demo/node_modules/@tensorflow-models/qna 文件夹。
  1. 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'});

推荐阅读