часть приложения один раз на едином языке, скомпилировать эту базовую функцио
нальность и получить на каждой платформе ожидаемые пользователями нативные
вид, ощущения и быстродействие. Язык/среда выполнения берет на себя большую
часть бизнеслогики и отображения UI и подключается к привязкам нативной
платформы для получения стандартного для нее внешнего вида и ощущений поль
зователя. Выбор подходящего фреймворка разработки гибридных приложений —
тема бесчисленных блогов и видео, которые можно найти в Интернете, так что мы
не станем останавливаться на этом здесь, а сосредоточим свое внимание только на
одном популярном фреймворке — React Native. На рис. 12.6 показано минимальное
приложение React Native, включающее модель MobileNet. Обратите внимание на
отсутствие верхней полоски браузера. Хотя в этом простом приложении нет ка
кихлибо элементов UI, если бы они были, то полностью соответствовали бы виду
и ощущениям от нативных приложений Android. Аналогичное справедливо и для
приложения, собранного для iOS.
К счастью, среда выполнения JavaScript в React Native поддерживает TensorFlow.js
нативным образом, без какихлибо дополнительных действий. Пакет tfjsreactnative
Глава 12. Тестирование, оптимизация и развертывание моделей
507
все еще находится на этапе альфаверсии
1
, но
уже поддерживает GPU с помощью WebGL
и пакета expogl. Пользовательский код вы
глядит примерно вот так (листинг 12.2):
import * as tf from '@tensorflow/tfjs';
import '@tensorflow/tfjs-react-native';
Данный пакет также предоставляет специ
альный API для загрузки и сохранения ресур
сов моделей изнутри мобильного приложения.
Хотя для разработки нативных приложе
ний с помощью React Native необходимо из
учить несколько новых инструментов, в част
ности Android Studio для Android и XCode
для iOS, кривая обучения все равно более
пологая, чем если сразу углубиться в натив
ную разработку. Поддержка TensorFlow.js
этими фреймворками разработки гибридных
приложений дает возможность использовать
единую базу кода для логики машинного об
учения, а не разрабатывать, поддерживать
и тестировать отдельные версии для каждой
разновидности аппаратного обеспечения —
сплошные преимущества для разработчи
ков, желающих предоставить пользователям
ощущение работы с нативными приложени
ями! Но как насчет ощущения работы с на
тивными приложениями для настольных ком
пьютеров?
Листинг 12.2.
Загрузка и сохранение модели внутри мобильного приложения с помощью React Native
1
В настоящее время он уже достиг стабильной версии 0.5.0 (по состоянию на февраль
2021 года). —
Примеч. пер.
Рис. 12.6.
Снимок экрана примера
нативного приложения Android,
созданного с помощью React Native.
В данном случае модель MobileNet
TensorFlow.js выполняется внутри
нативного приложения
508
Do'stlaringiz bilan baham: |