tf.compat.v1.keras.layers.LSTM
Слой с долговременной кратковременной памятью (LSTM) — Hochreiter 1997.
Наследует от: RNN, Layer, Module
tf.compat.v1.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,
return_sequences=False, return_state=False, go_backwards=False, stateful=False,
unroll=False, **kwargs
)
Обратите внимание, что эта ячейка не оптимизирована для производительности на GPU. Для лучшей производительности на GPU используйте tf.compat.v1.keras.layers.CuDNNLSTM.
| Аргументы | |
|---|---|
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, к смещению забывающего (forget) ворота добавляется 1 при инициализации. Установка в значение True также заставит bias_initializer="zeros". Это рекомендуется в Jozefowicz et al., 2015. |
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. Доля единиц, которые необходимо отбросить для линейного преобразования рекуррентного состояния. |
return_sequences | Булево значение. Нужно ли возвращать последний выход в выходной последовательности или полную последовательность. |
return_state | Булево значение. Нужно ли возвращать последнее состояние в дополнение к выходу. |
go_backwards | Булево значение (по умолчанию False). Если True, обрабатывает входную последовательность в обратном порядке и возвращает обратную последовательность. |
stateful | Булево значение (по умолчанию False). Если True, последнее состояние для каждой выборки с индексом i в пакете будет использоваться в качестве начального состояния для выборки с индексом i в следующем пакете. |
unroll | Булево значение (по умолчанию False). Если True, сеть будет развернута, иначе будет использован символьный цикл. Развёртывание может ускорить RNN, хотя оно, как правило, более ресурсоёмкое. Развертывание подходит только для коротких последовательностей. |
time_major | Формат формы тензоров inputs и outputs. Если True, входы и выходы будут иметь форму (timesteps, batch, ...), а в случае False — (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 | |
Методы
reset_states
reset_states(
states=None
)
Сбросить записанные состояния для состоятельного слоя RNN.
Может быть использован только тогда, когда слой RNN был создан с stateful = True. Аргументы: состояния: Numpy массивы, содержащие значения начального состояния, которые будут переданы ячейке в первый момент времени. Если значение равно None, будет создан нулевой массив numpy на основе размера состояния ячейки.
| Исключения | |
|---|---|
AttributeError | Когда слой RNN не состоятельный. |
ValueError | Когда размер пакета слоя RNN неизвестен. |
ValueError | Когда входной массив numpy несовместим с состоянием слоя RNN, либо по размеру, либо по типу данных. |
© 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/r2.4/api_docs/python/tf/compat/v1/keras/layers/LSTM