В последнем уроке мы создали компонент диаграммы, который собирался отображать гистограмму для достоверности прогнозов и директиву Drawable, которая будет использоваться для выдачи пикселей изображения в качестве вывода.

Теперь займемся пиксельными данными изображения.

Загрузите 7 файлов из этой папки и сохраните их в папке src / assets /. Мы будем использовать эти файлы для поиска модели.

Теперь откройте файл home.ts и напишите этот код.

Асинхронная функция loadModel начнет загрузку модели, как только представление будет загружено в приложение.

Функция асинхронного прогнозирования будет принимать данные изображения в качестве входных. Внутренняя обработка выглядит следующим образом.

Мы сохраняем значение типа tf.tensor3D в img, созданном из значений пикселей изображения. Затем мы изменяем изображение в соответствии с формой, в которой наша модель была изначально обучена. И затем мы приводим img к типу float32.

Теперь мы передаем img в качестве входных данных функции model.predict и помещаем его выходные данные в переменную output, которая inturn сохраняет выходные данные в виде массива в переменной прогнозирования.

Весь приведенный выше код представлен как тело функции обратного вызова tf.tidy (). tf.tidy () настолько полезен, поскольку мы будем использовать модель в мобильном устройстве, которое обычно не имеет очень большой памяти, поэтому он поможет нам избежать утечек памяти и освободит память, используемую любым конкретным тензором, как только этот тензор бесполезен.

Если вышеприведенный абзац слишком многословен, не стесняйтесь гуглить эти вещи.

Теперь решим, как будет выглядеть наше приложение. Откройте файл home.html.

Приведенный выше код придаст строке заголовка зеленый цвет и заголовок как Digit Recognizer, и после этого мы поднимем холст с директивой Drawable и методом прогнозирования с эмиттером вывода newImage, который начнет излучать, как только прикосновение закончится. .

Кнопка стирания просто повторно инициализирует холст и массив прогнозов.

А теперь мы будем использовать компонент диаграммы для отображения гистограмм для значений достоверности массива прогнозов, передав его в качестве входных данных в поле данных компонента.

Давайте покажем короткое предупреждение для пользователей, у которых действительно медленное соединение.

Вот так должно выглядеть и работать окончательное приложение.

На этом приложение готово и работает. Если у вас есть какие-либо сомнения по поводу приложения, вы чувствуете, что должно быть еще несколько объяснений, не стесняйтесь подключаться. В следующий раз мы поговорим о других интересных темах. Следуйте за мной на linkedin здесь.