tf.keras.layers.AdditiveAttention
Слой аддитивной внимательности, также известный как внимание по Баханау.
Наследуется от: 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). Если не указан, будет использованvalueв качествеkey.
Вычисление выполняется по следующим шагам:
- Вычисление оценок внимания с помощью
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 | 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/AdditiveAttention