Глава 5. Перенос обучения: переиспользование предобученных нейронных сетей
211
приложения требуется, чтобы пользователь говорил конкретные слова, например
red
или
blue
, либо какието слова, выбранные самими пользователями; либо приложение
будет предназначено для носителей других языков, помимо английского. Это клас
сический пример переноса обучения: можно
попытаться
обучить модель с нуля на
небольшом количестве данных, но благодаря использованию предобученной модели
в качестве базовой можно сэкономить немало времени и вычислительных ресурсов
при более высокой степени безошибочности.
Как выполнить перенос обучения
в примере приложения speech-command
Прежде чем описать схему работы переноса обучения, расскажем вам, как исполь
зовать возможности переноса обучения через UI. Для этого убедитесь, что к вашей
машине подключено устройство ввода звука (микрофон), а уровень громкость
в системных настройках ненулевой. Чтобы скачать и запустить код демонстрации,
выполните следующие команды (та же самая процедура, что и в подразделе 4.4.1):
git clone https://github.com/tensorflow/tfjs-models.git
cd tfjs-models/speech-commands
yarn && yarn publish-local
cd demo
yarn && yarn link-local && yarn watch
После запуска пользовательского интерфейса ответьте «да» на запрос брау
зера, разрешив доступ к микрофону. Рисунок 5.9 демонстрирует пример снимка
экрана демонстрации. При запуске страница демонстрации автоматически за
гружает из Интернета предобученную модель speechcommand с помощью метода
tf.loadLayersModel()
, параметр которого указывает URL по протоколу HTTPS.
После загрузки модели станут доступны кнопки
Start
и
Enter Transfer Words
. Если на
жать кнопку
Start
, демонстрация начнет работать в режиме вывода, в котором будет
распознано 18 основных слов (как показано на экране) в непрерывном режиме. При
каждом обнаружении слова на экране подсвечивается соответствующее окошко
для слова. Если же нажать кнопку
Enter Transfer Words
, на экране появится несколько
дополнительных кнопок, созданных на основе списка разделенных запятыми слов
из поля текстового ввода справа. По умолчанию это слова
noise
,
red
и
green
. Именно
их будет обучаться распознавать модель, полученная с помощью переноса обуче
ния. Но вы можете свободно менять содержимое окна ввода, если хотите обучить
перенесенную модель распознавать другие слова, главное, сохранить
noise
. Элемент
noise
— особенный, для него необходимо собрать образцы фонового шума, то есть
примеры данных, не содержащие никаких звуков речи. Благодаря ему перенесенная
модель обучается отличать моменты, когда произносятся слова, от промежутков
тишины (когда присутствует только фоновый шум). При нажатии этих кнопок де
монстрация записывает с микрофона звуковые фрагменты длительностью одна се
кунда и отображает их спектрограммы рядом с соответствующими кнопками. Числа
на кнопках отражают количество собранных на текущий момент примеров данных
для соответствующего слова.
Do'stlaringiz bilan baham: |