Не пойманный (в обещании) Ошибка типа: net.classify не является функцией

#javascript #tensorflow #tensorflow.js

Вопрос:

Я прочитал несколько ответов, связанных с такого рода вопросами/проблемами, и ничего не работает. У меня есть javascript для загрузки и прогнозирования модели tensorflow.

 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
 

есть ли какой-нибудь способ преодолеть эту ситуацию?

Комментарии:

1. Похоже classify , что это не метод для моделей тензорного потока: js.tensorflow.org/api/latest/#class:LayersModel

2. Я использую метод классификации при использовании модели mobilenet без проблем.

Ответ №1:

Что вам нужно сделать, это преобразовать его в тензор и изменить метод «классифицировать» на метод «прогнозировать» .

 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();