采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
keras.layers.SimpleRNN(units = rnn_units, stateful = True, recurrent_initializer = 'glorot_uniform', return_sequences = True),
老师keras.layers.SimpleRNN中的stateful和recurrent_initializer参数有什么意义呢?官网的解释没怎么看懂
keras.layers.SimpleRNN
stateful
recurrent_initializer
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的顺序不能被打乱。
登录后可查看更多问答,登录/注册
Tensorflow2.0实战—以实战促理论的方式学习深度学习
2.9k 1
1.4k 3
1.2k 19
1.4k 13
2.0k 7