tensorlfow常用RNN函数
tf.nn.rnn_cell.BasicLSTMCell
:
_init_(
num_units,
forget_bias=1.0,
state_is_tuple=True,
activation=None,
reuse=None,
name=None
)
- num_units:int类型,LSTM 中单元个数(LSTM中包含memory blocks,也就是我们看到的图示的一个小长方形,memory block中有cell和gate,标准LSTM中一个memory block只有一个cell和三个gate,但可以包含多个cell及相应的gate,num_units就是一个memory block包含多少个cell及其相应的gate)
- forget_bias:float,0.0或1.0(默认),
- state_is_tuple:bool,默认True,即得到(cell,hidden_state)二元组。False的话是把(cell,hidden_state)连接起来,不过要deprecated了
- activation:内部状态的激活函数,默认tanh
- reuse; name
tf.nn.rnn_cell.LSTMCell
:
_init_(
num_units,
use_peepholes=False,
cell_clip=None,
initializer=None,
num_proj=None,
proj_clip=None,
num_unit_shards=None,
num_proj_shards=None,
forget_bias=1.0,
state_is_tuple=True,
activation=None,
reuse=None,
name=None
)
- num_units:int, LSTM cell中单元个数
- use_peepholes: bool, 如果为True,LSTM内部的cells与gates的连接以掌握精确的输出时机
- cell_clip: float, 可选,如果cell state超过这个值,则在cell输出到激活之前被截断
- initializer:权重(weights)及映射(projection)矩阵的初始化
- num_proj:(可选),int,映射矩阵的输出维度
- proj_clip:(可选),float,如果num_proj大于0,并且提供了cell_clip,则映射值截断于[-proj_clip, proj_clip]
- num_unit_shards;num_proj_shards: deprecated
- forget_bias:默认1.0
- state_is_tuple;activation;reuse;name:如上
具体的peephole connections,projection layer和cell clipping可看如下文章:
Learning Prei