tf.contrib.seq2seq.LuongMonotonicAttention
Механизм монотонного внимания с функцией энергии в стиле Luong.
tf.contrib.seq2seq.LuongMonotonicAttention(
num_units, memory, memory_sequence_length=None, scale=False,
score_mask_value=None, sigmoid_noise=0.0, sigmoid_noise_seed=None,
score_bias_init=0.0, mode='parallel', dtype=None, name='LuongMonotonicAttention'
)
Этот тип внимания накладывает ограничение монотонности на распределения внимания; то есть, как только модель обращает внимание на заданную точку в памяти, она не может обращать внимание на какие-либо предыдущие точки в последующие моменты времени. Это достигается с помощью _monotonic_probability_fn вместо softmax для построения распределений внимания. В противном случае он эквивалентен LuongAttention. Этот подход предложен в
Colin Raffel, Minh-Thang Luong, Peter J. Liu, Ron J. Weiss, Douglas Eck, «Online and Linear-Time Attention by Enforcing Monotonic Alignments». ICML 2017. https://arxiv.org/abs/1704.00784
| Аргументы | |
|---|---|
num_units | Глубина механизма запроса. |
memory | Память для запроса; обычно выход RNN-кодировщика. Этот тензор должен иметь форму [batch_size, max_time, ...]. memory_sequence_length (необязательно): Длины последовательностей для записей пакетной памяти. Если задано, строки тензора памяти маскируются нулями для значений, которые выходят за рамки соответствующих длин последовательностей. |
scale | Булево значение Python. Нужно ли масштабировать член энергии? |
score_mask_value | (необязательно): Значение маски для оценки до передачи в probability_fn. По умолчанию -inf. Используется только если memory_sequence_length не равно None. |
sigmoid_noise | Стандартное отклонение шума до сигмоиды. Подробнее см. документацию для _monotonic_probability_fn. |
sigmoid_noise_seed | (необязательно) Случайное семя для шума до сигмоиды. |
score_bias_init | Начальное значение скаляра смещения оценки. Рекомендуется инициализировать это значение отрицательным числом, когда длина памяти велика. |
mode | Способ вычисления распределения внимания. Должно быть 'recursive', 'parallel' или 'hard'. Подробнее см. документацию для tf.contrib.seq2seq.monotonic_attention. |
dtype | Тип данных для слоев запроса и памяти механизма внимания. |
name | Имя для использования при создании операций. |
| Атрибуты | |
|---|---|
alignments_size | |
batch_size | |
keys | |
memory_layer | |
query_layer | |
state_size | |
values | |
Методы
initial_alignments
initial_alignments(
batch_size, dtype
)
Создаёт начальные значения выравнивания для монотонного внимания.
Инициализирует в дираковские распределения, т.е. [1, 0, 0, ...длина памяти..., 0] для всех записей в пакете.
| Аргументы | |
|---|---|
batch_size | int32 скаляр, размер пакета. |
dtype | dtype. |
| Возвращаемое значение | |
|---|---|
Тензор типа dtype формы [batch_size, alignments_size] (alignments_size - max_time значений). |
initial_state
initial_state(
batch_size, dtype
)
Создаёт начальные значения состояния для класса AttentionWrapper.
Это важно для AttentionMechanisms, которые используют предыдущее выравнивание для расчёта выравнивания на следующем шаге времени (например, монотонное внимание).
По умолчанию возвращает тот же результат, что и initial_alignments.
| Аргументы | |
|---|---|
batch_size | int32 скаляр, размер пакета. |
dtype | dtype. |
| Возвращаемое значение | |
|---|---|
Структура тензоров со значениями нулей с формами, как описано в state_size. |
__call__
__call__(
query, state
)
Оценивает запрос, основываясь на ключах и значениях.
| Аргументы | |
|---|---|
query | Тензор типа, соответствующего self.values и формы [batch_size, query_depth]. |
state | Тензор типа, соответствующего self.values и формы [batch_size, alignments_size] (alignments_size - max_time памяти). |
| Возвращаемое значение | |
|---|---|
alignments | Тензор типа, соответствующего self.values и формы [batch_size, alignments_size] (alignments_size - max_time памяти). |
© 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/seq2seq/LuongMonotonicAttention