tf.contrib.seq2seq.monotonic_attention
Вычисление монотонного распределения внимания на основе вероятностей выбора.
tf.contrib.seq2seq.monotonic_attention(
p_choose_i, previous_attention, mode
)
Монотонное внимание подразумевает, что входная последовательность обрабатывается явно слева направо при генерации выходной последовательности. Кроме того, после того как к элементу входной последовательности обратились в заданный момент времени выходной последовательности, к элементам, предшествующим ему, нельзя обращаться в последующие моменты времени выходной последовательности. Эта функция генерирует распределения внимания в соответствии с этими предположениями. Дополнительную информацию можно найти в Online and Linear-Time Attention by Enforcing Monotonic Alignments.
| Аргументы | |
|---|---|
p_choose_i | Вероятность выбора элемента i входной последовательности/памяти. Должна иметь форму (размер_пакета, длина_входной_последовательности) и все значения должны быть в диапазоне [0, 1]. |
previous_attention | Распределение внимания из предыдущего момента времени выходной последовательности. Должно иметь форму (размер_пакета, длина_входной_последовательности). Для первого момента времени выходной последовательности предыдущее_внимание[n] должно быть [1, 0, 0, ..., 0] для всех n в [0, ... размер_пакета - 1]. |
mode | Способ вычисления распределения внимания. Должно быть одним из 'recursive', 'parallel', или 'hard'. * 'recursive' использует tf.scan для рекурсивного вычисления распределения. Это самый медленный способ, но точный, общий и не страдает от численных неустойчивостей. * 'parallel' использует параллелизованные операции кумулятивного суммирования и кумулятивного произведения для вычисления замкнутого решения рекуррентного соотношения, определяющего распределение внимания. Это делает его более эффективным, чем 'recursive', но требует численных проверок, которые делают распределение неточным. Это может быть проблемой, особенно когда длина_входной_последовательности большая и/или p_choose_i имеет элементы, очень близкие к 0 или 1. * 'hard' требует, чтобы вероятности в p_choose_i были либо 0, либо 1, а затем использует более эффективный и точный способ решения. |
| Возвращаемое значение | |
|---|---|
| Массив тензоров с формой (размер_пакета, длина_входной_последовательности), представляющий распределения внимания для каждой последовательности в пакете. |
| Исключения | |
|---|---|
ValueError | режим не является одним из 'recursive', 'parallel', 'hard'. |
© 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/monotonic_attention