最近发现Lstm中有个比较鸡肋的dropout机制
keras.layers.GRU(units, activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=1, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)
dropout:0~1之间的浮点数,控制输入线性变换的神经元断开比例
recurrent_dropout:0~1之间的浮点数,控制循环状态的线性变换的神经元断开比例
如果单层的LSTM使用dropout,肯定是没有完全学习到输入层传递的信息。如果想要使用dropout机制,直接在层之间加入dropout层不就好了(ps. 一般人也是这么做的)?搞不懂他们为什么会有这样操作。recurrent_drop是在循环层见断开神经元的比例,这还算是比较有用。
出自:世相科技
欢迎点赞支持
网友评论