请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

stateful和recurrent_initializer参数

keras.layers.SimpleRNN(units = rnn_units,
                               stateful = True,
                               recurrent_initializer = 'glorot_uniform',
                               return_sequences = True),

老师keras.layers.SimpleRNN中的statefulrecurrent_initializer参数有什么意义呢?官网的解释没怎么看懂

正在回答 回答被采纳积分+3

1回答

正十七 2020-01-04 18:26:21

keras.layers.SimpleRNNCell中的解释更为详细一些:https://www.tensorflow.org/api_docs/python/tf/keras/layers/SimpleRNNCell?version=stable

我们在讲循环神经网络的时候,会讲当前步状态的计算公式为:

new_s = f(w1*old_s + w2 * x)

其中w1就是循环核,w2就是核。对应到API中,recurrent_initializer就是w1的初始化方法,kernel_initializer就是w2的初始化方法。

然后stateful=true, 就意味着当前batch的输出状态会被当成下一个batch的初始化状态,这个操作一般在文本长度比较长时会比较有用。比如样本A,在batch1中,用了A中的第0-200个词语,在batch2中,要用A中的第200-400个词语。如果语料中有大量的长语句时。这个参数就有用。当然,这还需要batch的顺序不能被打乱。

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信