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:
-
activation== 'tanh' -
recurrent_activation== 'sigmoid' -
recurrent_dropout== 0 -
unrollis False -
use_biasis True - Входы не замаскированы и не имеют строгого правого заполнения.
| Аргументы | |
|---|---|
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