Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.keras.layers.LSTM

Слой памяти с долгой краткосрочной памятью — Hochreiter 1997.

Наследуется от: LSTM

tf.compat.v2.keras.layers.LSTM(
    units, activation='tanh', recurrent_activation='sigmoid', use_bias=True,
    kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal',
    bias_initializer='zeros', unit_forget_bias=True, kernel_regularizer=None,
    recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None,
    kernel_constraint=None, recurrent_constraint=None, bias_constraint=None,
    dropout=0.0, recurrent_dropout=0.0, implementation=2, return_sequences=False,
    return_state=False, go_backwards=False, stateful=False, time_major=False,
    unroll=False, **kwargs
)

В зависимости от доступного оборудования и ограничений времени выполнения, этот слой выберет различные реализации (на основе cuDNN или чисто на Tensorflow) для максимальной производительности. Если доступна видеокарта (GPU) и все аргументы слоя соответствуют требованиям ядра CuDNN (см. подробности ниже), слой будет использовать быструю реализацию cuDNN.

Требования для использования реализации cuDNN:

  1. activation == 'tanh'
  2. recurrent_activation == 'sigmoid'
  3. recurrent_dropout == 0
  4. unroll is False
  5. use_bias is True
  6. Входы не замаскированы и не имеют строгого правого заполнения.
Аргументы
units Положительное целое число, размерность выходного пространства.
activation Функция активации для использования. По умолчанию: гиперболический тангенс (tanh). Если вы передаете None, активация не применяется (т.е. линейная активация: a(x) = x).
recurrent_activation Функция активации для использования на рекуррентном шаге. По умолчанию: сигмоида (sigmoid). Если вы передаете None, активация не применяется (т.е. линейная активация: a(x) = x).
use_bias Булево значение, использует ли слой вектор смещения.
kernel_initializer Инициализатор матрицы весов kernel, используемый для линейного преобразования входов.
recurrent_initializer Инициализатор матрицы весов recurrent_kernel, используемый для линейного преобразования рекуррентного состояния.
bias_initializer Инициализатор вектора смещения.
unit_forget_bias Булево значение. Если True, добавляет 1 к смещению забывающего гейта при инициализации. Установка в true также заставляет bias_initializer="zeros". Это рекомендуется в Jozefowicz et al..
kernel_regularizer Функция регуляризации, применяемая к матрице весов kernel.
recurrent_regularizer Функция регуляризации, применяемая к матрице весов recurrent_kernel.
bias_regularizer Функция регуляризации, применяемая к вектору смещения.
activity_regularizer Функция регуляризации, применяемая к выходу слоя ("активации").
kernel_constraint Функция ограничения, применяемая к матрице весов kernel.
recurrent_constraint Функция ограничения, применяемая к матрице весов recurrent_kernel.
bias_constraint Функция ограничения, применяемая к вектору смещения.
dropout Вещественное число от 0 до 1. Доля единиц для отбрасывания для линейного преобразования входов.
recurrent_dropout Вещественное число от 0 до 1. Доля единиц для отбрасывания для линейного преобразования рекуррентного состояния.
implementation Режим реализации, либо 1, либо 2. Режим 1 будет структурировать свои операции как большее количество меньших скалярных произведений и сложений, в то время как режим 2 объединит их в меньшее количество больших операций. Эти режимы будут иметь разные профили производительности на различных аппаратных средствах и для различных приложений.
return_sequences Булево значение. Возвращать ли последний выход в последовательности вывода или всю последовательность.
return_state Булево значение. Возвращать ли последнее состояние дополнительно к выводу.
go_backwards Булево значение (по умолчанию False). Если True, обрабатывать входную последовательность в обратном порядке и вернуть обращенную последовательность.
stateful Булево значение (по умолчанию False). Если True, последнее состояние для каждого образца в индексе i в пакете будет использоваться в качестве начального состояния для образца с индексом i в следующем пакете.
unroll Булево значение (по умолчанию False). Если True, сеть будет развернута, иначе будет использоваться символический цикл. Развертывание может ускорить RNN, хотя оно, как правило, более ресурсоемко. Развертывание подходит только для коротких последовательностей.

Аргументы вызова:

  • inputs: 3D тензор.
  • mask: Бинарный тензор формы (samples, timesteps) указывающий, следует ли маскировать данный временной шаг (необязательно, по умолчанию None).
  • training: Python-булево значение указывающее, должен ли слой вести себя в режиме обучения или в режиме вывода. Этот аргумент передаётся ячейке при её вызове. Это актуально только если используется dropout или recurrent_dropout (необязательно, по умолчанию None).
  • initial_state: Список начальных тензоров состояния, которые должны быть переданы в первый вызов ячейки (необязательно, по умолчанию None, что приводит к созданию тензоров начального состояния, заполненных нулями).
Атрибуты
activation
bias_constraint
bias_initializer
bias_regularizer
dropout
implementation
kernel_constraint
kernel_initializer
kernel_regularizer
recurrent_activation
recurrent_constraint
recurrent_dropout
recurrent_initializer
recurrent_regularizer
states
unit_forget_bias
units
use_bias

Методы

get_dropout_mask_for_cell

Просмотреть исходный код

get_dropout_mask_for_cell(
    inputs, training, count=1
)

Получить маску дропаута для входного тензора ячейки RNN.

Создаст маску на основе контекста, если нет существующей кэшированной маски. Если новая маска сгенерирована, она обновит кэш в ячейке.

Аргументы
inputs тензор ввода, форма которого будет использована для генерации маски дропаута.
training булевый тензор, находится ли он в режиме обучения, дропаут будет пропущен в режиме, не являющемся обучением.
count целое число, сколько масок дропаута будет сгенерировано. Это полезно для ячейки, у которой внутренние веса объединены вместе.
Возвращает
Список тензоров маски, сгенерированные или кэшированные маски на основе контекста.

get_initial_state

Просмотреть исходный код

get_initial_state(
    inputs
)

get_recurrent_dropout_mask_for_cell

Просмотреть исходный код

get_recurrent_dropout_mask_for_cell(
    inputs, training, count=1
)

Получить маску рекуррентного дропаута для ячейки RNN.

Создаст маску на основе контекста, если нет существующей кэшированной маски. Если новая маска сгенерирована, она обновит кэш в ячейке.

Аргументы
inputs тензор ввода, форма которого будет использована для генерации маски дропаута.
training булевый тензор, находится ли он в режиме обучения, дропаут будет пропущен в режиме, не являющемся обучением.
count целое число, сколько масок дропаута будет сгенерировано. Это полезно для ячейки, у которой внутренние веса объединены вместе.
Возвращает
Список тензоров маски, сгенерированные или кэшированные маски на основе контекста.

reset_dropout_mask

Просмотреть исходный код

reset_dropout_mask()

Сбросить кэшированные маски дропаута, если они есть.

Это важно для слоя RNN, чтобы вызвать это в методе call(), чтобы очистить кэшированную маску перед вызовом cell.call(). Маска должна кэшироваться на временном шаге в рамках одного пакета, но не должна кэшироваться между пакетами. В противном случае это введёт необоснованный перекос в отношении определённого индекса данных в пакете.

reset_recurrent_dropout_mask

Просмотреть исходный код

reset_recurrent_dropout_mask()

Сбросить кэшированные маски рекуррентного дропаута, если они есть.

Это важно для слоя RNN, чтобы вызвать это в методе call(), чтобы очистить кэшированную маску перед вызовом cell.call(). Маска должна кэшироваться на временном шаге в рамках одного пакета, но не должна кэшироваться между пакетами. В противном случае это введёт необоснованный перекос в отношении определённого индекса данных в пакете.

reset_states

Просмотреть исходный код

reset_states(
    states=None
)

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/compat/v2/keras/layers/LSTM

Spec-Zone.ru

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