tf.keras.layers.SimpleRNN
| Просмотреть исходный код на GitHub |
Полносвязный RNN, где выход подается обратно на вход.
Наследуется от: RNN, Layer, Module
tf.keras.layers.SimpleRNN(
units,
activation='tanh',
use_bias=True,
kernel_initializer='glorot_uniform',
recurrent_initializer='orthogonal',
bias_initializer='zeros',
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
)
См. Руководство по API Keras RNN для получения подробной информации об использовании API RNN.
| Аргументы | |
|---|---|
units | Положительное целое число, размерность выходного пространства. |
activation | Функция активации для использования. По умолчанию: гиперболический тангенс (tanh). Если передано значение None, активация не применяется (т.е. используется линейная активация: a(x) = x). |
use_bias | Булево значение, (по умолчанию True), использует ли слой вектор смещения. |
kernel_initializer | Инициализатор матрицы весов kernel, используемой для линейного преобразования входных данных. По умолчанию: glorot_uniform. |
recurrent_initializer | Инициализатор матрицы весов recurrent_kernel, используемой для линейного преобразования рекуррентного состояния. По умолчанию: orthogonal. |
bias_initializer | Инициализатор вектора смещения. По умолчанию: zeros. |
kernel_regularizer | Функция регуляризации, применяемая к матрице весов kernel. По умолчанию: None. |
recurrent_regularizer | Функция регуляризации, применяемая к матрице весов recurrent_kernel. По умолчанию: None. |
bias_regularizer | Функция регуляризации, применяемая к вектору смещения. По умолчанию: None. |
activity_regularizer | Функция регуляризации, применяемая к выходу слоя (его «активации»). По умолчанию: None. |
kernel_constraint | Функция ограничения, применяемая к матрице весов kernel. По умолчанию: None. |
recurrent_constraint | Функция ограничения, применяемая к матрице весов recurrent_kernel. По умолчанию: None. |
bias_constraint | Функция ограничения, применяемая к вектору смещения. По умолчанию: None. |
dropout | Значение с плавающей запятой от 0 до 1. Доля единиц, которые необходимо отбросить для линейного преобразования входных данных. По умолчанию: 0. |
recurrent_dropout | Значение с плавающей запятой от 0 до 1. Доля единиц, которые необходимо отбросить для линейного преобразования рекуррентного состояния. По умолчанию: 0. |
return_sequences | Булево значение. Возвращает ли слой только последний выход в последовательности или всю последовательность. По умолчанию: False. |
return_state | Булево значение. Возвращает ли слой последнее состояние в дополнение к выходу. По умолчанию: False |
go_backwards | Булево (по умолчанию False). Если True, обрабатывает входную последовательность в обратном порядке и возвращает обращенную последовательность. |
stateful | Булево (по умолчанию False). Если True, последнее состояние для каждого образца с индексом i в пакете будет использоваться в качестве начального состояния для образца с индексом i в последующем пакете. |
unroll | Булево (по умолчанию False). Если True, сеть будет развернута, иначе будет использоваться символический цикл. Развертывание может ускорить работу RNN, хотя оно, как правило, более ресурсоемко. Развертывание подходит только для коротких последовательностей. |
Аргументы вызова:
-
inputs: 3D тензор, с формой[batch, timesteps, feature]. -
mask: Бинарный тензор формы[batch, timesteps]указывающий, следует ли маскировать определенный момент времени. Индивидуальная записьTrueуказывает, что соответствующий момент времени должен быть использован, аFalseзапись указывает, что соответствующий момент времени следует игнорировать. -
training: Булево значение Python, указывающее, должно ли слой вести себя в режиме обучения или в режиме вывода. Этот аргумент передаётся ячейке при вызове. Это актуально только при использованииdropoutилиrecurrent_dropout. -
initial_state: Список начальных тензоров состояния, которые необходимо передать в первый вызов ячейки.
Примеры:
inputs = np.random.random([32, 10, 8]).astype(np.float32)
simple_rnn = tf.keras.layers.SimpleRNN(4)
output = simple_rnn(inputs) # The output has shape `[32, 4]`.
simple_rnn = tf.keras.layers.SimpleRNN(
4, return_sequences=True, return_state=True)
# whole_sequence_output has shape `[32, 10, 4]`.
# final_state has shape `[32, 4]`.
whole_sequence_output, final_state = simple_rnn(inputs)
| Атрибуты | |
|---|---|
activation | |
bias_constraint | |
bias_initializer | |
bias_regularizer | |
dropout | |
kernel_constraint | |
kernel_initializer | |
kernel_regularizer | |
recurrent_constraint | |
recurrent_dropout | |
recurrent_initializer | |
recurrent_regularizer | |
states | |
units | |
use_bias | |
Методы
reset_states
reset_states(
states=None
)
Сбросить записанные состояния для состояния RNN.
Может быть использован только когда слой RNN был создан с stateful = True. Аргументы: states: Массивы NumPy, содержащие значения для начального состояния, которое будет передано в ячейку в первый момент времени. Если значение равно None, создаётся нулевой массив NumPy, основанный на размере состояния ячейки.
| Исключения | |
|---|---|
AttributeError | Когда слой RNN не имеет состояния. |
ValueError | Когда размер пакета слоя RNN неизвестен. |
ValueError | Когда входной массив NumPy несовместим с состоянием слоя RNN, либо по размеру, либо по типу. |
© 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/versions/r2.9/api_docs/python/tf/keras/layers/SimpleRNN