Глава 9. Глубокое обучение для последовательностей и текста
371
вый код может разрастись до нескольких сотен строк. Давайте попробуем реализовать
подход на основе глубокого обучения — в частности, архитектуру «кодировщик — де
кодировщик» с использованием механизма внимания на основе LSTM.
Чтобы ограничить поле охвата этого примера, начнем с 18 часто встречающихся
форматов дат, приведенных далее. Отметим, что все они представляют собой разные
способы записи одной и той же даты:
"23Jan2015", "012315", "01/23/15", "1/23/15",
"01/23/2015", "1/23/2015", "23-01-2015", "23-1-2015",
"JAN 23, 15", "Jan 23, 2015", "23.01.2015", "23.1.2015",
"2015.01.23", "2015.1.23", "20150123", "2015/01/23",
"2015-01-23", "2015-1-23"
Конечно, существуют и другие форматы дат
1
. Но когда фундамент в виде обуче
ния модели и выполнения вывода заложен, добавление поддержки дополнительных
форматов — простая задача, которую мы оставим читателю в качестве упражнения
в конце данной главы (упражнение 3).
Прежде всего запустим пример. Как и пример анализа тональностей, приведен
ный ранее, он состоит из двух частей: обучения и выполнения вывода. Обучение
производится в прикладной части с помощью tfjsnode или tfjsnodegpu. Для запуска
обучения выполните следующие команды:
git clone https://github.com/tensorflow/tfjs-examples.git
cd tfjs-examples/sentiment
yarn
yarn train
Чтобы выполнить обучение с помощью GPU с поддержкой CUDA, воспользуй
тесь флагом
--gpu
команды
yarn
train
:
yarn train --gpu
По умолчанию обучение продолжается две эпохи, чего должно хватить для при
ближения значения потерь к нулю, а степени безошибочности преобразования —
к идеальной. Большинство результатов вывода для примеров данных, отображаемые
в конце обучения, должны оказаться правильно преобразованными. Эти примеры
данных для вывода взяты из контрольного набора данных, не пересекающегося с об
учающим набором. Обученная модель сохраняется по относительному пути dist/
model и затем используется на этапе выполнения вывода в браузере. Для запуска
UI вывода выполните:
yarn watch
На появившейся вебстранице вы можете ввести дату в поле ввода текста
Input
Date String
(Введите строку с датой) и нажать клавишу
Enter
— и увидите, как изме
1
Кроме того, вы могли обратить внимание на то, что мы выбрали набор форматов дат без неод
нозначностей. Если бы мы включили в набор форматов варианты и MM/DD/YYYY, и DD/
MM/YYYY, некоторые строковые представления дат допускали бы двоякое толкование,
то есть их нельзя было бы интерпретировать с уверенностью. Например, строковое значение
“01/02/2019” можно интерпретировать и как 2 января 2019 года, и как 1 февраля 2019 года.
372
Do'stlaringiz bilan baham: |