Spec-Zone.ru › TensorFlow 1.15

tf.contrib.seq2seq.BahdanauAttention

Реализует внимание по методу Баханау (аддитивное).

tf.contrib.seq2seq.BahdanauAttention(
    num_units, memory, memory_sequence_length=None, normalize=False,
    probability_fn=None, score_mask_value=None, dtype=None,
    custom_key_value_fn=None, name='BahdanauAttention'
)

Это внимание имеет две формы. Первая — внимание Баханау, как описано в:

Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio. "Neural Machine Translation by Jointly Learning to Align and Translate." ICLR 2015. https://arxiv.org/abs/1409.0473

Вторая форма — нормализованная. Она вдохновлена статьёй о нормализации весов:

Tim Salimans, Diederik P. Kingma. "Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks." https://arxiv.org/abs/1602.07868

Чтобы включить вторую форму, постройте объект с параметром normalize=True.

Аргументы
num_units Глубина механизма запроса.
memory Память для запроса; обычно выход RNN-кодера. Этот тензор должен иметь форму [batch_size, max_time, ...].
memory_sequence_length (необязательно) Длины последовательностей для записей в пачке в памяти. Если предоставлены, строки тензора памяти маскируются нулями для значений, находящихся за соответствующими длинами последовательностей.
normalize Логическое значение Python. Нужно ли нормализовать энергетический член.
probability_fn (необязательно) Функция callable. Преобразует оценку в вероятности. По умолчанию tf.nn.softmax. Другие варианты включают tf.contrib.seq2seq.hardmax и tf.contrib.sparsemax.sparsemax. Её сигнатура должна быть: probabilities = probability_fn(score).
score_mask_value (необязательно): значение маски для оценки перед передачей в probability_fn. По умолчанию -inf. Используется только если memory_sequence_length не равно None.
dtype Тип данных для слоёв запроса и памяти механизма внимания.
custom_key_value_fn (необязательно): пользовательская функция для вычисления ключей и значений.
name Имя для использования при создании операций.
Атрибуты
alignments_size
batch_size
keys
memory_layer
query_layer
state_size
values

Методы

initial_alignments

Просмотреть исходный код

initial_alignments(
    batch_size, dtype
)

Создаёт начальные значения выравнивания для класса AttentionWrapper.

Это важно для AttentionMechanisms, которые используют предыдущее выравнивание для расчёта выравнивания на следующем шаге (например, монотонное внимание).

По умолчанию возвращается тензор всех нулей.

Аргументы
batch_size int32 скаляр, batch_size.
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 скаляр, batch_size.
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/BahdanauAttention

Spec-Zone.ru

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