tf.keras.layers.AdditiveAttention
Слой аддитивного внимания, также известный как внимание в стиле Bahdanau.
Наследуется от: Attention, Layer, Operation
tf.keras.layers.AdditiveAttention(
use_scale=True, dropout=0.0, **kwargs
)
Входные данные — список из 2 или 3 элементов:
- Тензор
queryформы(batch_size, Tq, dim). - Тензор
valueформы(batch_size, Tv, dim). - Необязательный тензор
keyформы(batch_size, Tv, dim). Если он не задан, в качествеkeyбудет использоватьсяvalue.
Вычисления выполняются в несколько этапов:
- Вычисляются оценки внимания с использованием
queryиkeyформы(batch_size, Tq, Tv)как нелинейной суммыscores = reduce_sum(tanh(query + key), axis=-1). - На основе оценок вычисляется распределение softmax формы
(batch_size, Tq, Tv). - Распределение softmax используется для создания линейной комбинации
valueформы(batch_size, Tq, dim).
| Аргументы | |
|---|---|
use_scale | Если True, будет создана скалярная переменная для масштабирования оценок внимания. |
dropout | Число с плавающей точкой от 0 до 1. Доля единиц, отбрасываемых для оценок внимания. По умолчанию — 0.0. |
| Аргументы вызова | |
|---|---|
inputs | Список следующих тензоров:
|
mask | Список следующих тензоров: query_mask: логический тензор маски формы (batch_size, Tq). Если он задан, в позициях, где mask==False, выходное значение будет равно нулю.value_mask: логический тензор маски формы (batch_size, Tv). Если он задан, маска применяется так, что значения в позициях, где mask==False, не влияют на результат. |
return_attention_scores | Логическое значение; если True, оценки внимания (после применения маски и softmax) возвращаются в качестве дополнительного выходного аргумента. |
training | Логическое значение Python, указывающее, должен ли слой работать в режиме обучения (с добавлением dropout) или в режиме вывода (без dropout). |
use_causal_mask | Логическое значение. Установите True для self-attention декодера. Добавляет маску, запрещающую позиции i учитывать позиции j > i. Это предотвращает передачу информации из будущего в прошлое. По умолчанию — False. |
| Выходные данные | |
|---|---|
Выходные данные внимания формы (batch_size, Tq, dim). (Необязательно) Оценки внимания после применения маски и softmax формы (batch_size, Tq, Tv). |
| Атрибуты | |
|---|---|
input | Возвращает входной тензор или тензоры символьной операции. Возвращает только тензор или тензоры, соответствующие первому вызову операции. |
output | Возвращает выходной тензор или тензоры слоя. Возвращает только тензор или тензоры, соответствующие первому вызову операции. |
Методы
from_config
@classmethod
from_config(
config
)
Создаёт слой на основе его конфигурации.
Этот метод является обратным по отношению к get_config и позволяет создать экземпляр того же слоя из словаря конфигурации. Он не обрабатывает связи между слоями (за это отвечает Network) и веса (за это отвечает set_weights).
| Аргументы | |
|---|---|
config | Словарь Python, обычно являющийся результатом вызова get_config. |
| Возвращает | |
|---|---|
| Экземпляр слоя. |
symbolic_call
symbolic_call(
*args, **kwargs
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/layers/AdditiveAttention