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/