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为您提供Variable对象的列表,可用于添加L2正则化项。请注意,这会为模型中的所有变量添加正则化。如果只想将L2项限制为权重的子集,则可以使用name_scope为变量指定特定的前缀,然后使用该前缀从tf.trainable_variables返回的列表中过滤变量。

关于neural-network - tensorflow 中LSTM的正则化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37571514/

10-12 21:14