Spec-Zone.ru › TensorFlow

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 элементов:

  1. Тензор query формы (batch_size, Tq, dim).
  2. Тензор value формы (batch_size, Tv, dim).
  3. Необязательный тензор key формы (batch_size, Tv, dim). Если он не задан, value будет использоваться как key.

Вычисления выполняются следующим образом:

  1. Вычисляются оценки внимания с помощью query и key формы (batch_size, Tq, Tv).
  2. На основе оценок вычисляется распределение softmax формы (batch_size, Tq, Tv).
  3. Распределение 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 Список следующих тензоров:
  • query: тензор запроса формы (batch_size, Tq, dim).
  • value: тензор значений формы (batch_size, Tv, dim).
  • key: необязательный тензор ключа формы (batch_size, Tv, dim). Если он не задан, value будет использоваться и для key, и для value — это наиболее распространённый случай.
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

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API