tf.keras.layers.LSTM
| Просмотр исходного кода на GitHub |
Слой долгосрочной краткосрочной памяти — Hochreiter 1997.
Наследует от: RNN
tf.keras.layers.LSTM(
units, activation='tanh', recurrent_activation='hard_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=1, return_sequences=False,
return_state=False, go_backwards=False, stateful=False, unroll=False, **kwargs
)
Обратите внимание, что этот блок не оптимизирован для производительности на GPU. Используйте tf.compat.v1.keras.layers.CuDNNLSTM для повышения производительности на GPU.
| Аргументы | |
|---|---|
units | Положительное целое число, размерность выходного пространства. |
activation | Функция активации для использования. По умолчанию: гиперболический тангенс (tanh). Если вы передадите None, активация не применяется (т.е. линейная активация: a(x) = x). |
recurrent_activation | Функция активации для использования на рекуррентном шаге. По умолчанию: жёсткая сигмоида (hard_sigmoid). Если вы передадите None, активация не применяется (т.е. линейная активация: a(x) = x). |
use_bias | Булево значение, указывает, использует ли слой вектор смещения. |
kernel_initializer | Инициализатор матрицы весов kernel, используемой для линейного преобразования входных данных. |
recurrent_initializer | Инициализатор матрицы весов recurrent_kernel, используемой для линейного преобразования рекуррентного состояния. |
bias_initializer | Инициализатор вектора смещения. |
unit_forget_bias | Булево значение. Если True, добавляет 1 к смещению забывающего (forget) шлюза при инициализации. Установка в 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, хотя оно, как правило, более ресурсоёмкое. Развёртывание подходит только для коротких последовательностей. |
time_major | Формат формы тензоров inputs и outputs. Если True, входы и выходы будут в форме (timesteps, batch, ...), в противном случае — (batch, timesteps, ...). Использование time_major = True немного эффективнее, потому что оно избегает транспонирования в начале и конце вычисления RNN. Однако большинство данных TensorFlow имеет порядок батчей, поэтому по умолчанию эта функция принимает входные данные и выводит выходные данные в порядке батчей. |
Аргументы вызова:
-
inputs: Тензор размерности 3. -
mask: Двоичный тензор формы(samples, timesteps)указывающий, должен ли быть замаскирован данный шаг во времени. -
training: Булево значение Python, указывающее, должен ли слой вести себя в режиме обучения или в режиме вывода. Этот аргумент передаётся в ячейку при её вызове. Это актуально только если используетсяdropoutилиrecurrent_dropout. -
initial_state: Список тензоров начальных состояний, которые будут переданы в первый вызов ячейки.
| Атрибуты | |
|---|---|
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_initial_state
get_initial_state(
inputs
)
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/keras/layers/LSTM