Tensorflow提供了一个很好的LSTM包装器.
rnn_cell.BasicLSTM(num_units,forget_bias=1.0,input_size=None,state_is_tuple=False,activation=tanh)
我想使用正则化,比如L2正则化.但是,我没有直接访问LSTM单元格中使用的不同权重矩阵,所以我不能明确地做类似的事情
loss = something + beta * tf.reduce_sum(tf.nn.l2_loss(weights))
有没有办法访问矩阵或使用LSTM以某种方式使用正则化?
tf.trainable_variables
为您提供了可用于添加L2正则化术语的Variable对象列表.请注意,这会为模型中的所有变量添加正则化.如果要将L2术语仅限制为权重的子集,可以使用
name_scope
将变量命名为特定前缀,稍后使用它来过滤tf.trainable_variables返回的列表中的变量.