раздела 3.3, совпадает ли приблизительно безошибочность классификации для трех
видов ирисов. Если контрольный или оценочный набор данных слишком смещен
в сторону одной из групп, вполне возможно, что модель всегда выдает неправиль
ные ответы для наименьшей группы, хотя проблема с безошибочностью и не про
является слишком явно. Как и в случае со средством проверки модели, тенденции
в зависимости от времени часто столь же полезны, как и измерения в отдельные
моменты времени.
486
Часть IV • Резюме и заключительное слово
12.2. Оптимизация модели
После того как вы методично создали, обучили и протестировали модель, пора
применить ее в деле. Этот процесс —
развертывание модели
(model deployment) —
ничуть не менее важен, чем предыдущие шаги разработки модели. Неважно, от
правляется ли модель на сторону клиента для выполнения вывода или будет об
служивать пользователей в прикладной части, она всегда должна работать быстро
и эффективно. Если точнее, желательно, чтобы:
z
z
размер модели был небольшим, благодаря чему она бы быстро загружалась через
Интернет или с диска;
z
z
при вызове метода
predict()
модели потреблялось как можно меньше вычисли
тельных ресурсов, памяти и времени.
В этом разделе описываются доступные в TensorFlow.js методики для оптими
зации размера и скорости выполнения вывода на основе обученных моделей перед
их развертыванием.
Слово
«оптимизация»
слишком перегружено смыслами. В этом разделе мы будем
понимать под
оптимизацией
усовершенствования, связанные с сокращением раз
меров модели и ускорения вычислений. Не путайте ее с методиками оптимизации
весовых параметров в контексте обучения модели и оптимизаторов, например с гра
диентным спуском. Иногда их называют
качеством
(quality) и
эффективностью
(performance) модели соответственно. Эффективность отражает количество времени
и ресурсов, необходимых модели для решения поставленной задачи. Качество от
ражает близость результатов к идеальным.
12.2.1. Оптимизация размера модели посредством
квантования весовых коэффициентов модели
после обучения
Вебразработчикам совершенно очевидно, что файлы должны быть маленькими
для быстрой загрузки их через Интернет. Что особенно важно, если вебсайт ори
ентирован на работу с большим количеством пользователей или на пользователей
с медленным интернетсоединением
1
. Кроме того, при хранении модели на мобиль
ном устройстве (см. обсуждение мобильного развертывания с помощью TensorFlow.
js в подразделе 12.3.4), размер модели часто ограничивается небольшим доступным
1
В марте 2019 года компания Google опубликовала дудл, демонстрирующий нейронную
сеть, способную сочинять музыку в стиле Иоганна Себастьяна Баха (http://mng.bz/
MOQW). В основе этой браузерной нейронной сети лежал TensorFlow.js. Модель была
квантована на 8битные целые числа при помощи описанных в этом разделе методов,
что сократило ее передаваемый по сети размер в несколько раз, примерно до 380 Кбайт.
Без такого квантования показывать эту модель такой обширной аудитории пользователей,
как у домашней страницы Google (где отображаются дудлы), было бы невозможно.
Do'stlaringiz bilan baham: |