【问题标题】:Use Azure custom vision model with Node.js将 Azure 自定义视觉模型与 Node.js 结合使用
【发布时间】:2020-06-01 09:04:36
【问题描述】:

我是 Tensorflow.js 的新手,所以我不太了解它。 我已经使用 Azure 自定义视觉 (customvision.ai) 训练了一个对象检测模型,并且如文档中所述,我导出了 Tensorflow.js 的模型,以便在我的 Node.js 项目中离线使用。

他们在 Github (https://github.com/microsoft/customvision-tfjs) 上有一个关于如何将模型与 Tensorflow.js 一起使用的非常简短的指南,我尝试按照步骤操作但无法运行。

如果有人有使用 Tensorflow.js 的经验,请帮助我,我在过去 3 天都坚持使用它。

这是我要执行的代码,我收到错误

'await 只能与异步函数一起使用'

即使 loadModelAsync() 函数是异步的。

const cvstfjs = require('@microsoft/customvision-tfjs');

let model = new cvstfjs.ObjectDetectionModel();
await model.loadModelAsync('model.json');
const image = document.getElementById('image');
const result = await model.executeAsync(image);

【问题讨论】:

  • 那不是 node.js 代码,那是 HTML 中的 JavaScript 代码。你被 Node.js 困在哪里了?
  • @AKX 感谢您的回复。在此处的指南中 (github.com/microsoft/customvision-tfjs)。他们提供了一个代码 sn-p 以在 Node.js 应用程序中使用该模型。但是当我尝试时,我得到了错误(导入语句不能在模块外部使用)。所以,我尝试使用网页 sn-p。你能帮我弄清楚如何在 Node js 中运行它吗
  • 您需要改用require 语句 (const cvstfjs = require('@microsoft/customvision-tfjs');)。
  • @AKX 我试过了,但我得到了错误(await 只能与异步函数一起使用),尽管我自己在库中检查了函数 loadModelAsync() 实际上是异步的。
  • 是的,使用await 调用异步函数的函数必须是async

标签: node.js tensorflow tensorflow.js azure-cognitive-services microsoft-custom-vision


【解决方案1】:

正如错误所说,您需要将任何 await 调用包装在 async 函数中:

const cvstfjs = require('@microsoft/customvision-tfjs');

async function doThings() {
  let model = new cvstfjs.ObjectDetectionModel();
  await model.loadModelAsync('model.json');
  const image = document.getElementById('image');
  const result = await model.executeAsync(image);
  return result;
}

doThings().then((result) => {
  console.log(result);
});

【讨论】:

  • 此代码还给出错误:(节点:15392)UnhandledPromiseRejectionWarning:TypeError:getNodeRequestOptions 仅支持绝对 URL(C:\Users\Aakash Bhadana\Desktop\tensorflowjs\node_modules\node-fetch\lib \index.js:1284:9) 在 C:\Users\Aakash Bhadana\Desktop\tensorflowjs\node_modules\node-fetch\lib\index.js:1370:19
  • 对,那是另一个问题。它无法从该路径加载您的模型。 (根据例外情况,完整的 HTTP URL 可能会起作用。)
  • 是的,你是对的,我用 localhost URL 更改了文件名,现在错误是未定义“文档”。如何在 Node.js 应用程序中访问 HTML 图像元素?
  • 代码 sn-p 在 Node.js 代码之间有 document.getElementById(),这对我来说没有意义??你能帮忙看看怎么做吗?
  • 您需要从某个地方获取图像数据。取决于您的应用程序。
【解决方案2】:

您是否看到使用 JavaScript 运行 ONNX 模型的 ONNX.js。 https://github.com/microsoft/onnxjs

【讨论】:

    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 2017-11-19
    • 2021-06-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多