tf.keras.layers.Attention
Слой внимательности с точечным произведением, также известный как внимание по Луонгу.
Наследует от: 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, указывающее, должно ли слой вести себя в режиме обучения (добавляя отбрасывание) или в режиме вывода (без отбрасывания). |
use_causal_mask | Булево значение. Устанавливается в True для самовнимания декодера. Добавляет маску таким образом, что позиция i не может обращать внимание на позиции j > i. Это предотвращает передачу информации из будущего в прошлое. По умолчанию False. |
| Вывод | |
|---|---|
Выводы внимания формы (batch_size, Tq, dim). (Необязательно) Оценки внимания после маскирования и softmax формы (batch_size, Tq, Tv). |
| Атрибуты | |
|---|---|
input | Извлекает входной тензор(ы) символической операции. Возвращает только тензор(ы), соответствующий первому вызову операции. |
output | Извлекает выходной тензор(ы) слоя. Возвращает только тензор(ы), соответствующий первому вызову операции. |
Методы
from_config
@classmethod
from_config(
config
)
Создаёт слой по его конфигурации.
Этот метод является обратным get_config, способным создать тот же слой из словаря конфигурации. Он не обрабатывает связность слоёв (обрабатывается сетью), ни веса (обрабатываются 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