Глава 9. Глубокое обучение для последовательностей и текста
363
последовательности: отбрасывание ее начала (опция
'pre'
) или концовки. В дан
ном случае применяем первый вариант из тех соображений, что концовка обзора
фильма скорее содержит относящуюся к тональности информацию, чем начало.
Аналогично увеличить слишком короткую последовательность до нужной длины
также можно двумя способами: добавить нужное количество заполняющих симво
лов (
PAD_CHAR
) до (опция
'pre'
) или после последовательности. Здесь мы волевым
решением также выбрали первый вариант. Код листинга взят из файла
sentiment/
sequence_utils.js
.
Листинг 9.7.
Усечение и дополнение последовательности как один из шагов загрузки
текстовых признаков
Создание и запуск одномерной сверточной сети
для набора данных IMDb
Все составные части нашей одномерной сверточной сети готовы, давайте соберем
их вместе и посмотрим, удастся ли добиться большей безошибочности при анализе
тональностей IMDb. Код создания одномерной сверточной сети приведен в листин
ге 9.8 (фрагмент из файла
sentiment/train.js
с некоторыми упрощениями). Затем
дана сводка топологии получившегося объекта
tf.Model
.
364
Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
Листинг 9.8.
Создание одномерной сверточной сети для задачи IMDb
_________________________________________________________________
Layer (type) Output shape Param #
=================================================================
embedding_Embedding1 (Embedd [null,500,128] 1280000
_________________________________________________________________
dropout_Dropout1 (Dropout) [null,500,128] 0
_________________________________________________________________
conv1d_Conv1D1 (Conv1D) [null,496,250] 160250
_________________________________________________________________
global_max_pooling1d_GlobalM [null,250] 0
_________________________________________________________________
dense_Dense1 (Dense) [null,250] 62750
_________________________________________________________________
dense_Dense2 (Dense) [null,1] 251
=================================================================
Total params: 1503251
Trainable params: 1503251
Non-trainable params: 0
_________________________________________________________________
Полезно будет одновременно взглянуть на JavaScriptкод и текстовую сводку
топологии модели. Здесь стоит отметить несколько нюансов.
z
z
Форма модели
[null,
500]
, где
null
— неопределенное измерение батчей (чис
ло примеров данных), а 500 — максимально допустимая длина обзора в словах
(
maxLen
). Входной тензор содержит усеченные/дополненные последовательности
целочисленных индексов слов.
z
z
Первый слой модели — слой вложений, преобразующий индексы слов в соот
ветствующие векторы слов, в результате чего получается форма
[null,
500,
128]
.
Do'stlaringiz bilan baham: |