Spec-Zone.ru › TensorFlow 1.15

tf.contrib.seq2seq.BahdanauМонотонноеВнимания

Монотонный механизм внимания с функцией энергии в стиле Баданау.

tf.contrib.seq2seq.BahdanauMonotonicAttention(
    num_units, memory, memory_sequence_length=None, normalize=False,
    score_mask_value=None, sigmoid_noise=0.0, sigmoid_noise_seed=None,
    score_bias_init=0.0, mode='parallel', dtype=None,
    name='BahdanauMonotonicAttention'
)

Этот тип внимания накладывает монотонное ограничение на распределения внимания; то есть, как только модель обратит внимание на определённую точку в памяти, она не может обращать внимание на какие-либо предыдущие точки в последующие моменты времени. Это достигается использованием _monotonic_probability_fn вместо softmax для построения распределений внимания. Поскольку оценки внимания передаются через сигмоиду, после функции оценки и перед сигмоидой применяется обучаемый скалярный смещающий параметр. В противном случае он эквивалентен BahdanauAttention. Этот подход предложен в

Colin Raffel, Minh-Thang Luong, Peter J. Liu, Ron J. Weiss, Douglas Eck, «Онлайн и линейное по времени внимание посредством принудительного монотонного выравнивания». ICML 2017. https://arxiv.org/abs/1704.00784

Аргументы
num_units Глубина механизма запроса.
memory Память для запроса; обычно выход RNN-кодера. Этот тензор должен иметь форму [batch_size, max_time, ...]. memory_sequence_length (необязательно): Длины последовательностей для элементов пакетной обработки в памяти. Если указано, строки тензора памяти маскируются нулями для значений, следующих за соответствующими длинами последовательностей.
normalize Логическое значение 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/BahdanauMonotonicAttention

Spec-Zone.ru

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