tf.contrib.rnn.BasicLSTMCell
首先我们先来看一下RNN的内部结构:
再看一下LSTM的内部结构:
LSTM的讲解请看这篇博客:
https://blog.****.net/pipisorry/article/details/78361778
tensorflow中实现这个功能的函数是
tf.contrib.rnn.BasicLSTMCell()
这个函数实现的最基本的LSTM函数的功能,即上面说的功能,不加peephole连接。那么什么是peephole连接呢?peephole连接是在每个门都加入细胞状态信号。如下所示:
tf.contrib.rnn.BasicLSTMCell()函数的参数如下所示
这个函数的讲解请参见这篇文章:
https://blog.****.net/u013230189/article/details/82808362
forget_bias参数的讲解:
源码中计算新的细胞状态的函数为:
new_c = (c * sigmoid(f + self._forget_bias) + sigmoid(i) * self._activation(j))
所以forget_bias参数是为了减少训练过程中遗忘的规模。因为sigmoid(x)的特点是x越大越接近1,这样始终让里面的值有一个固定偏置,这样会使得sigmoid(f + self._forget_bias)不会太小,能记住之前更多的信息,一定程度上减少梯度消失。
state_is_tuple: