Глава 12. Тестирование, оптимизация и развертывание моделей
513
делегированию GPU выполнения TensorFlow.js разработчики могут использовать
CPU для управления остальными частями устройств.
Безопасность модели и данных в случае развертывания на одноплатном ком
пьютере очень высока. Вычисления производятся непосредственно на устройстве,
а значит, данные не нужно передавать на сторонние, неподконтрольные устройства.
Для защиты модели на случай несанкционированного доступа к физическому устрой
ству можно использовать шифрование.
Рис. 1
2.9.
Работа модели MobileNet в TensorFlow.js с помощью автономного WebGL
на Raspberry Pi 4
Развертывание на одноплатных компьютерах — пока еще очень новая область
применения JavaScript вообще и TensorFlow.js в частности, открывающая, однако,
путь для широкого спектра приложений, для которых прочие варианты разверты
вания не подходят.
12.3.8. Краткая сводка вариантов развертывания
В этом разделе мы охватили несколько различных способов предоставления аудитории
пользователей доступа к системе машинного обучения на основе TensorFlow.js (их
краткую сводку вы можете найти в табл. 12.4). Надеемся, что мы зажгли искру вашего
воображения и заставили вас мечтать о самых дерзновенных способах применения
514
Часть IV • Резюме и заключительное слово
этой технологии! Экосистема JavaScript чрезвычайно обширна, и в будущем системы
на основе машинного обучения будут работать в областях, о которых сегодня мы даже
не мечтаем.
Таблица 12.4.
Возможные среды развертывания моделей TensorFlow.js и средства аппаратного
ускорения в каждой из них
Среда развертывания
Поддержка аппаратного ускорения
Браузер
WebGL
Сервер Node.js
CPU с поддержкой многопоточности и SIMD;
GPU с поддержкой CUDA
Браузерный плагин
WebGL
Межплатформенное приложение
для настольных компьютеров (например,
на основе Electron)
WebGL, CPU с поддержкой многопоточности
и SIMD или GPU с поддержкой CUDA
Межплатформенное мобильное приложение
(например, на основе React Native)
WebGL
Плагин для мобильного приложения (такого
как WeChat)
Мобильный WebGL
Одноплатный компьютер (например,
Raspberry Pi)
GPU или ARM NEON
Материалы для дальнейшего изучения
z
z
Baylor D. et al
. TFX: A TensorFlowBased ProductionScale Machine Learning Plat
form // KDD 2017:
www.kdd.org/kdd2017/papers/view/tfx-a-tensorflow-based-production-
scale-machine-learning-platform
.
z
z
Krishnamoorthi R.
Quantizing Deep Convolutional Networks for Efficient Inference:
A Whitepaper // June 2018:
https://arxiv.org/pdf/1806.08342.pdf
.
z
z
Larsen R. M., Shpeisman T.
TensorFlow Graph Optimization:
https://ai.google/research/
pubs/pub48051
.
Упражнения
1. В главе 10 мы обучили вспомогательный классификатор GAN (ACGAN) на набо
ре данных MNIST для генерации поддельных изображений цифр нужного класса.
А именно, речь идет о примере из каталога mnistacgan репозитория tfjsexamples.
Общий размер генератора обученной модели составлял примерно 10 Мбайт,
большую часть которых занимали весовые коэффициенты, хранимые в виде
32битных чисел с плавающей точкой. Было бы заманчиво произвести кванто
Do'stlaringiz bilan baham: |