Keras Recurrent Layers 解析

GRU

keras.layers.recurrent.GRU(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', activation='sigmoid', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
 
 

Gated Recurrent Unit - Cho et al. 2014.

  • 输入形状:3D 张量:(nb_samples, timesteps, input_dim).
  • 输出形状:
    • 如果 return_sequences:3D 张量形如:(nb_samples, timesteps, output_dim).
    • 否则:2D 张量形如:(nb_samples, output_dim).
  • 参数:
    • input_dim:输入的维数
    • output_dim:内部投影的维数和最终输出的维数
    • init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_init:对内部元件的权重初始化函数
    • activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_activation:内部元件的激活函数
    • weights:numpy 数组的列表用以设置初始权重。这个列表应该有 9 个元素
    • truncate_gradient:BPTT 的截断时间步。参见:Theano scan
    • return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
  • References:

LSTM

keras.layers.recurrent.LSTM(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', forget_bias_init='one', activation='tanh', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
 
 

Long Short-Term Memory unit - Hochreiter et al. 1997

  • 输入形状:3D 张量:(nb_samples, timesteps, input_dim).
  • 输出形状:
    • 如果 return_sequences:3D 张量形如:(nb_samples, timesteps, output_dim).
    • 否则:2D 张量形如:(nb_samples, output_dim).
  • 参数:
    • input_dim:输入的维数
    • output_dim:内部投影的维数和最终输出的维数
    • init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_init:对内部元件的权重初始化函数
    • forget_bias_init:用作遗忘门的偏差初的始函数。Jozefowicz 等人推荐使用 1 来初始化
    • activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_activation:内部元件的激活函数
    • weights:numpy 数组的列表用以设置初始权重。这个列表应该有 9 个元素
    • truncate_gradient:BPTT 的截断时间步。参见:Theano scan
    • return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
  • References:

JZS1, JZS2, JZS3

keras.layers.recurrent.JZS1(input_dim, output_dim=128, init='glorot_uniform', inner_init='orthogonal', activation='tanh', inner_activation='sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
 
 

全连接的 RNN 其中输出被重回输入。不是特别有用,仅供参考。

  • 输入形状:3D 张量:(nb_samples, timesteps, input_dim).
  • 输出形状:
    • 如果 return_sequences:3D 张量形如:(nb_samples, timesteps, output_dim).
    • 否则:2D 张量形如:(nb_samples, output_dim).
  • 参数:
    • input_dim
    • output_dim
    • init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_init:内部元件的初始化的函数
    • activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • weights:numpy 数组的列表用以设置初始权重。这个列表应该有 3 个元素,形如:[(input_dim, output_dim), (output_di,, output_dim), (output_dim, )]
    • truncate_gradient:BPTT 的截断时间步。参见:Theano scan
    • return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。
  • 参考文献:
    An Empirical Exploration of Recurrent Network Architectures

SimpleDeepRNN

keras.layers.recurrent.SimpleDeepRNN(input_dim, output_dim, depth=3, init='glorot_uniform', inner_init='orthogonal', activation='sigmoid', inner_activation='hard_sigmoid', weights=None, truncate_gradient=-1, return_sequences=False)
 
 

全连接的 RNN 其中多个时间步的输出重回输入中(使用 depth 参数来控制步数)。

output = activation( W.x_t + b + inner_activation(U_1.h_tm1) + inner_activation(U_2.h_tm2) + ... )
 
 

也不是常用的模型,仅供参考。

  • 输入形状:3D 张量:(nb_samples, timesteps, input_dim).
  • 输出形状:
    • 如果 return_sequences:3D 张量形如:(nb_samples, timesteps, output_dim).
    • 否则:2D 张量形如:(nb_samples, output_dim).
  • 参数:
    • input_dim
    • output_dim
    • init:权重初始函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_init:对内部元件的权重初始化函数
    • activation:激活函数。可以是任何已经存在的函数(str),或者是一个 Theano 的函数(参见:初始化
    • inner_activation:内部元件的激活函数
    • weights:numpy 数组的列表用以设置初始权重。这个列表应该有 3 个元素,形如:[(input_dim, output_dim), (output_di,, output_dim), (output_dim, )]
    • truncate_gradient:BPTT 的截断时间步。参见:Theano scan
    • return_sequences:Boolean。是否返回输出序列的最后一个,或者返回全部序列。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值