RNN相关的网络层定义
循环层
keras.layers.SimpleRNN( # 全连接的 RNN,其输出直接被反馈到输入。
units : 正整数,输出空间的维度。
activation = 'tanh' : 要使用的激活函数。
use_bias = True : 该层是否使用偏置向量。
kernel_initializer = 'glorot_uniform' : kernel权值矩阵的初始化器。
用于输入的线性转换。
recurrent_initializer = 'orthogonal' : recurrent_kernel权值矩阵初始化器
用于循环层状态的线性转换。
bias_initializer = 'zeros' : 偏置向量的初始化器。
kernel_regularizer = None : kernel权值矩阵的正则化函数。
recurrent_regularizer = None : recurrent_kernel权值矩阵的正则化函数。
bias_regularizer = None : 偏置向量的正则化函数。
activity_regularizer = None : 层输出(它的激活值)的正则化函数。
kernel_constraint = None : kernel权值矩阵的约束函数。
recurrent_constraint = None : recurrent_kernel权值矩阵的约束函数。
bias_constraint = None : 偏置向量的约束函数。
dropout = 0.0 : 单元的丢弃比例,用于输入的线性转换。
recurrent_dropout = 0.0 : 单元的丢弃比例,用于循环层状态的线性转换。
return_sequences = False : 是返回输出序列中的最后一个输出,还是全部序列。
return_state = False : 除了输出之外是否返回最后一个状态(cell state)。
go_backwards = False : 如果为True,则向后处理输入序列并返回相反的序列。
stateful = False : 是否将批次中索引i的样品最后状态用作下一批次i样品的初始状态。
unroll = False : 如果为True,网络将展开,否则将使用符号循环。
展开可以加速RNN,但它往往会占用更多的内存。展开只适用于短序列。
)
keras.layers.RNN(
cell : 一个 RNN 单元实例。
return_sequences = False : 是返回输出序列中的最后一个输出,还是全部序列。
return_state = False : 除了输出之外是否返回最后一个状态(cell state)。
go_backwards = False : 是否向后处理输入序列并返回相反的序列。
stateful = False : 是否将批次中索引i的样品最后状态用作下一批次i样品的初始状态。
unroll = False : 如果为True,网络将展开,否则将使用符号循环。
展开可以加速RNN,但它往往会占用更多的内存。展开只适用于短序列。
input_dim : 输入的维度(整数)。 将此层用作模型中的第一层时,此参数必需。
input_length : 输入序列的长度,在恒定时指定。
如果在上游连接Flatten和Dense层,需要此参数(没有它无法计算全连接输出尺寸)。
)
其余RNN函数:
SimpleRNNCell : SimpleRNN的单元类。
嵌入层
用于将正整数的(字符串字典索引值)转换为固定尺寸的稠密向量,该层只能用作模型中的第一层。
例如: [[4], [20]] -> [[0.25, 0.1, 0.7], [0.6, -0.2, -1.3]]
keras.layers.Embedding(
input_dim : int > 0。词汇表大小, 即最大整数 index + 1。
output_dim : int >= 0。词向量的维度。
embeddings_initializer = 'uniform' : embeddings矩阵的初始化方法。
embeddings_regularizer = None : embeddings matrix的正则化方法。
activity_regularizer