SimpleRNNCell
classkeras.layers.SimpleRNNCell(
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,
kernel_constraint=None,
recurrent_constraint=None,
bias_constraint=None,
dropout=0.0,
recurrent_dropout=0.0,
seed=None,
**kwargs
)
SimpleRNN 的单元类.
该类处理整个时间序列输入中的一个步骤,而 keras.layer.SimpleRNN
处理整个序列.
参数:
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
.
kernel_constraint: 应用于 kernel
权重矩阵的约束函数.默认值: None
.
recurrent_constraint: 应用于 recurrent_kernel
权重矩阵的约束函数.默认值: None
.
bias_constraint: 应用于偏置向量的约束函数.默认值: None
.
dropout: 0 到 1 之间的浮点数.用于输入线性变换的单元丢弃比例.默认值: 0.
recurrent_dropout: 0 到 1 之间的浮点数.用于循环状态线性变换的单元丢弃比例.默认值: 0.
seed: 用于 dropout 的随机种子.
调用参数:
sequence: 一个 2D 张量,形状为 (batch, features)
.
states: 一个 2D 张量,形状为 (batch, units)
,即从前一个时间步的状态.
training: Python 布尔值,指示该层应在训练模式还是推理模式下运行.仅在使用了 dropout
或 recurrent_dropout
时相关.
示例:
inputs = np.random.random([32, 10, 8]).astype(np.float32)
rnn = keras.layers.RNN(keras.layers.SimpleRNNCell(4))
output = rnn(inputs) # 输出形状为 `(32, 4)`.
rnn = keras.layers.RNN(
keras.layers.SimpleRNNCell(4),
return_sequences=True,
return_state=True
)
# whole_sequence_output 形状为 `(32, 10, 4)`.
# final_state 形状为 `(32, 4)`.
whole_sequence_output, final_state = rnn(inputs)