Неправильные прогнозы при использовании предварительно обученных моделей InceptionV3 / Xception компании Keras. - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь заставить предварительно обученные модели Keras InceptionV3 / Xception работать в tenorflow.js.Модели прекрасно загружаются, однако выходные прогнозы далеки от правильных (см. Прогнозное фото InceptionV3)

Я также сохранил / преобразовал модель ResNet50, которая работает отлично.

Естьэти модели просто несовместимы с tenorflow.js в настоящее время?или что-то не так с моим кодом?

Модели были сохранены / преобразованы со следующим:

from keras.applications import inception_v3
model = inception_v3.InceptionV3(include_top=True, weights='imagenet')
model.save("InceptionV3.h5", False)

tensorflowjs_converter --input_format=keras InceptionV3.h5 InceptionV3

Код доступен здесь (угловое приложение): https://github.com/BenMcFadyen/tfjs_test

Важная часть: https://github.com/BenMcFadyen/tfjs_test/blob/master/src/app/app.component.ts

Версии:

  • Хром: 72.0.3626.109
  • @ensorflow / tfjs @ 1.0.0-alpha3

Прогнозы InceptionV3

Прогнозы ResNet50

1 Ответ

0 голосов
/ 15 марта 2019

Я решил эту проблему для дальнейшего использования, оказалось, что я не нормализовал изображения в диапазоне [-1, 1] до ввода их в модель, как это делает Mobilenet . Я не уверен, почему ResNet50 работает без нормализации.

Код нормализации:

 let tensor = tf.browser.fromPixels(canvas, number_channels);
 let normalizationOffset = tf.scalar(127.5);
 var normalized = tensor.toFloat().sub(normalizationOffset).div(normalizationOffset);
 var batched = resized.reshape([1, imgSize, imgSize, 3]);
 var output = model.predict(batched) as any;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...