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 https://www.tensorflow.org/versions/r0.8/api_docs/python/state_ops.html#trainable_variables给你一个列表Variable
可用于添加 L2 正则化项的对象。请注意,这会为模型中的所有变量添加正则化。如果您想将 L2 项限制为权重的子集,您可以使用name_scope https://www.tensorflow.org/versions/r0.8/api_docs/python/framework.html#Graph.name_scope使用特定前缀命名变量,然后使用它从返回的列表中过滤变量tf.trainable_variables
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)