Назначение пула слоя после слоя встраивания текста - PullRequest
0 голосов
/ 26 марта 2020

Я следую учебному пособию на сайте tenorflow (https://www.tensorflow.org/tutorials/text/word_embeddings#create_a_simple_model), чтобы изучить встраивание слов, и у меня возникла путаница в отношении цели создания слоя Globalaveragepooling сразу после слоя встраивания, как следует:

model = keras.Sequential([
  layers.Embedding(encoder.vocab_size, embedding_dim),
  layers.GlobalAveragePooling1D(),
  layers.Dense(16, activation='relu'),
  layers.Dense(1)
])

Я понимаю, что такое объединение и как это делается. Если кто-то может объяснить, зачем нам нужен слой пула и что изменится, если мы его не используем, я был бы признателен.

1 Ответ

0 голосов
/ 26 марта 2020

Цель этого урока - помочь вам понять встраивание слов с помощью простой игрушечной задачи: двоичного анализа настроений.

Для начала они заставляют вас кодировать простую модель: взять среднее из всех вложения в предложение и добавление нейронной net для прямой связи, чтобы классифицировать этот агрегированный ввод. GlobalAveragePooling1D делает это усреднение.

Очевидно, что в реальном мире вы хотели бы использовать более сложные модели в качестве RNN, LSTM, двунаправленных моделей, моделей на основе атомной свертки или трансформаторов, но это не главное руководство.

«Простая модель», которую они упоминают как нейронная связь с прямой связью net, она предполагает фиксированное входное измерение, поэтому, когда у вас есть последовательные данные переменной длины, вам нужно как-то решить эту проблему: усреднение, заполнение, обрезка и др c. Вот они в среднем с этим GlobalAveragePooling1D слоем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...