tf.keras.layers.SimpleRNN
| Просмотреть исходный код на GitHub |
Полносвязный RNN, где выход подаётся обратно на вход.
Наследуется от: RNN
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 RNN Keras для получения подробной информации об использовании 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]указывающий, должен ли быть замаскирован данный момент времени. -
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, либо по размеру, либо по типу данных. |
© 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.3/api_docs/python/tf/keras/layers/SimpleRNN