Часть IV • Резюме и заключительное слово
12.3.5. Развертывание моделей TensorFlow.js
в межплатформенных приложениях
для настольных компьютеров на JavaScript
JavaScriptфреймворки, такие как Electron.js, позволяют писать межплатформенные
приложения для настольных компьютеров в чемто аналогично написанию межплат
форменных мобильных приложений на React Native. При использовании подобных
фреймворков достаточно написать код один раз, чтобы потом развертывать и вы
полнять его на всех основных операционных системах для настольных компьюте
ров, включая macOS, Windows и основные дистрибутивы Linux. Это существенное
упрощение по сравнению с традиционным технологическим процессом разработки,
с отдельными базами кода для по большей части несовместимых операционных
систем для настольных компьютеров. Возьмем для примера Electron.js, ведущий
фреймворк из этой категории. В нем в качестве виртуальной машины, служащей ба
зой для основного процесса приложения, используется Node.js; для GUI приложения
используется Chromium — полноценный, хотя и облегченный браузер, значительная
часть кода которого едина с Google Chrome.
TensorFlow.js совместим с Electron.js, как демонстрирует простой пример из ре
позитория tfjsexamples. Этот пример, который вы можете найти в каталоге electron,
демонстрирует развертывание модели TensorFlow.js для выполнения вывода в осно
ванном на Electron.js приложении для настольных компьютеров, предназначенном
для поиска файлов изображений в файловой системе, соответствующих визуально
одному или нескольким ключевым словам (рис. 12.7). Этот процесс поиска включает
применение модели MobileNet TensorFlow.js к содержащему изображения каталогу
для выполнения вывода.
Несмотря на простоту, это приложение иллюстрирует важный нюанс развер
тывания моделей TensorFlow.js в приложениях Electron.js — выбор осуществля
ющей вычисления прикладной части. Приложение Electron.js может работать как
в прикладной части на основе Node.js, так и в процессе клиентской части на основе
Chromium. TensorFlow.js может работать в любой из этих сред. В результате одна
и та же модель может работать как в процессе прикладной части наподобие node,
так и в процессе клиентской части наподобие браузера. В случае развертывания
в прикладной части используется пакет @tensorflow/tfjsnode, а при развертыва
нии в клиентской части — @tensorflow/tfjs (рис. 12.8). С помощью кнопкифлажка
в GUI нашего примера приложения можно переключаться между режимами вы
полнения вывода в прикладной/клиентской части (рис. 12.7), хотя в настоящем
приложении на основе TensorFlow.js и Electron.js, среда, в которой работает
модель, обычно выбирается заранее. Далее мы вкратце обсудим за и против этих
вариантов.
Как демонстрирует рис. 12.8, при выборе различных вариантов прикладной
части вычисления глубокого обучения осуществляются на различном аппаратном
обеспечении. При развертывании на основе пакета @tensorflow/tfjsnode рабочая
нагрузка ложится на CPU, при участии многопоточной, поддерживающей SIMD
библиотеки libtensorflow. Благодаря отсутствию в среде прикладной части ограни
Do'stlaringiz bilan baham: |