tf.contrib.legacy_seq2seq.embedding_attention_seq2seq
Модель последовательности в последовательность с вложением и вниманием.
tf.contrib.legacy_seq2seq.embedding_attention_seq2seq(
encoder_inputs, decoder_inputs, cell, num_encoder_symbols, num_decoder_symbols,
embedding_size, num_heads=1, output_projection=None, feed_previous=False,
dtype=None, scope=None, initial_state_attention=False
)
В этой модели сначала кодируются encoder_inputs с помощью нового вложения (размерности [num_encoder_symbols x input_size]). Затем выполняется RNN для кодирования вложенных encoder_inputs в вектор состояния. Выходы этой RNN сохраняются на каждом шаге для последующего использования в механизме внимания. Далее, декодер_inputs вкладываются с помощью другого нового вложения (размерности [num_decoder_symbols x input_size]). Затем декодер с вниманием, инициализированный последним состоянием кодировщика, обрабатывает вложенные декодер_inputs и обращается к выходам кодировщика.
| Аргументы | |
|---|---|
encoder_inputs | Список 1D тензоров типа int32 размерности [batch_size]. |
decoder_inputs | Список 1D тензоров типа int32 размерности [batch_size]. |
cell | tf.compat.v1.nn.rnn_cell.RNNCell, определяющий функцию и размер ячейки. |
num_encoder_symbols | Целое число; количество символов на стороне кодировщика. |
num_decoder_symbols | Целое число; количество символов на стороне декодера. |
embedding_size | Целое число, длина вектора вложения для каждого символа. |
num_heads | Количество головок внимания, которые считывают из attention_states. |
output_projection | None или пара (W, B) весов и смещений проекции вывода; W имеет размерность [output_size x num_decoder_symbols], а B — [num_decoder_symbols]; если задано и feed_previous=True, каждый предыдущий выход будет сначала умножен на W и добавлен B. |
feed_previous | Булево значение или скалярный булевый тензор; если True, используется только первый из decoder_inputs (символ "GO"), а все остальные decoder_inputs берутся из предыдущих выходов (как в embedding_rnn_decoder). Если False, decoder_inputs используются как есть (стандартный случай декодера). |
dtype | Тип данных начального состояния RNN (по умолчанию: tf.float32). |
scope | Scope переменных для созданной подграфа; по умолчанию "embedding_attention_seq2seq". |
initial_state_attention | Если False (по умолчанию), начальные значения внимания равны нулю. Если True, значения внимания инициализируются из начального состояния и состояний внимания. |
| Возвращаемые значения | |
|---|---|
| Кортеж вида (outputs, state), где: outputs: Список той же длины, что и decoder_inputs, содержащий 2D тензоры размерности [batch_size x num_decoder_symbols], содержащие сгенерированные выходы. state: Состояние каждой ячейки декодера в последний момент времени. Это 2D тензор размерности [batch_size x cell.state_size]. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/legacy_seq2seq/embedding_attention_seq2seq