Uncaught (in promise) TypeError: net.classify is not a function

Uncaught (in promise) TypeError: net.classify is not a function

我已经阅读了几个与这种 question/problem 相关的答案,但没有任何效果。 我有 javascript 用于加载和预测张量流模型。

let net;

async function app() {
  console.log('Loading model...');

  net = await tf.loadLayersModel('path/to/model.json');
  console.log('Successfully loaded model');

  const imgEl = document.getElementById('img');
  const result = await net.classify(imgEl);
  console.log(result);
}

app();

并导致此错误

Uncaught (in promise) TypeError: net.classify is not a function

有什么办法可以克服这种情况吗?

你需要做的是将它转换成张量,并将“分类”方法更改为“预测”方法

async function app() {
  console.log('Loading Model...');

  const model = await tf.loadLayersModel('path/to/model.json');
  console.log('Successfully loaded model');

  const imgEl = document.getElementById('img');
  let tensor = tf.browser.fromPixels(imgEl)
    .resizeNearestNeighbor([299, 299])
    .toFloat()
    .expandDims();

  let predictions = await model.predict(tensor).data();
  console.log(predictions)
}
app();