Spec-Zone.ru › TensorFlow 1.15

tf.contrib.legacy_seq2seq.attention_decoder

Декодер RNN с вниманием для модели последовательности-последовательности.

tf.contrib.legacy_seq2seq.attention_decoder(
    decoder_inputs, initial_state, attention_states, cell, output_size=None,
    num_heads=1, loop_function=None, dtype=None, scope=None,
    initial_state_attention=False
)

В данном контексте «внимание» означает, что во время декодирования RNN может получать информацию из дополнительного тензора attention_states, фокусируясь на нескольких элементах этого тензора. Данная модель показала хорошие результаты во многих задачах последовательности-последовательности. Эта реализация основана на http://arxiv.org/abs/1412.7449 (подробности см. ниже). Рекомендуется для сложных задач последовательности-последовательности.

Аргументы
decoder_inputs Список 2D тензоров [размер_пакета x размер_входа].
initial_state 2D тензор [размер_пакета x размер_состояния_ячейки].
attention_states 3D тензор [размер_пакета x длина_внимания x размер_внимания].
cell tf.compat.v1.nn.rnn_cell.RNNCell, определяющий функцию и размер ячейки.
output_size Размер выходных векторов; если None, используется cell.output_size.
num_heads Количество головок внимания, считывающих из attention_states.
loop_function Если не None, эта функция будет применяться к i-му выходу для генерации i+1-го входа, и decoder_inputs будут игнорироваться, кроме первого элемента («символ GO»). Это можно использовать для декодирования, а также для обучения, чтобы эмулировать http://arxiv.org/abs/1506.03099 Подпись -- loop_function(prev, i) = next * prev - это 2D тензор формы [размер_пакета x размер_выхода], * i - целое число, номер шага (когда требуется управление), * next - 2D тензор формы [размер_пакета x размер_входа].
dtype Тип данных для использования в начальном состоянии RNN (по умолчанию: tf.float32).
scope VariableScope для создаваемой подграфа; по умолчанию: "attention_decoder".
initial_state_attention Если False (по умолчанию), начальные значения внимания равны нулю. Если True, инициализирует значения внимания из начального состояния и состояний внимания - полезно, когда мы хотим возобновить декодирование из ранее сохранённого состояния декодера и состояний внимания.
Возвращаемое значение
Кортеж вида (выходы, состояние), где: выходы: Список той же длины, что и decoder_inputs, содержащий 2D тензоры формы [размер_пакета x размер_выхода]. Они представляют сгенерированные выходы. Выход i вычисляется из входа i (который является либо i-м элементом decoder_inputs, либо loop_function(выход {i-1}, i)) следующим образом. Сначала мы запускаем ячейку на комбинации входа и предыдущих масок внимания: cell_output, new_state = cell(linear(вход, prev_attn), prev_state). Затем мы вычисляем новые маски внимания: new_attn = softmax(V^T * tanh(W * attention_states + U * new_state)), а затем вычисляем выход: output = linear(cell_output, new_attn). состояние: Состояние каждой ячейки декодера в последний момент времени. Это 2D тензор формы [размер_пакета x размер_состояния_ячейки].
Исключения
ValueError при num_heads не положительно, нет входов, формы attention_states не заданы или размер входа не может быть определён из входных данных.

© 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/attention_decoder

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API