tf.keras.layers.Attention
Слой внимания на основе скалярного произведения, также известный как внимание в стиле Luong.
Наследуется от: Layer, Operation
tf.keras.layers.Attention(
use_scale=False,
score_mode='dot',
dropout=0.0,
seed=None,
**kwargs
)
Входные данные — это список из 2 или 3 элементов:
- Тензор
queryформы(batch_size, Tq, dim). - Тензор
valueформы(batch_size, Tv, dim). - Необязательный тензор
keyформы(batch_size, Tv, dim). Если он не задан,valueбудет использоваться какkey.
Вычисления выполняются следующим образом:
- Вычисляются оценки внимания с помощью
queryиkeyформы(batch_size, Tq, Tv). - На основе оценок вычисляется распределение softmax формы
(batch_size, Tq, Tv). - Распределение softmax используется для создания линейной комбинации
valueформы(batch_size, Tq, dim).
| Аргументы | |
|---|---|
use_scale | Если True, будет создана скалярная переменная для масштабирования оценок внимания. |
dropout | Число с плавающей запятой от 0 до 1. Доля элементов, отбрасываемых в оценках внимания. По умолчанию — 0.0. |
seed | Целое число Python, используемое в качестве начального значения генератора случайных чисел в случае dropout. |
score_mode | Функция для вычисления оценок внимания: одна из {"dot", "concat"}. "dot" означает скалярное произведение векторов запроса и ключа. "concat" означает гиперболический тангенс конкатенации векторов query и key. |
| Аргументы вызова | |
|---|---|
inputs | Список следующих тензоров:
|
mask | Список следующих тензоров: query_mask: тензор булевой маски формы (batch_size, Tq). Если он задан, в позициях, где mask==False, выходное значение будет равно нулю.value_mask: тензор булевой маски формы (batch_size, Tv). Если он задан, маска применяется так, что значения в позициях, где mask==False, не влияют на результат. |
return_attention_scores | bool: если 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/Attention