如何在TensorFlow中添加正则化?
0 605
0

我在使用TensorFlow实现的许多神经网络代码中发现,正则化项通常是通过在损失值上手动添加一个附加项来实现的。

我的问题是:1.是否有比手动进行更简单或推荐的正规化方法 2.我也发现get_variable有一个regularizer。应该如何使用?根据我的观察,如果我们向其传递正则化(例如tf.contrib.layers.l2_regularizer,表示正则化项的张量将被计算并添加到名为tf.GraphKeys.REGULARIZATOIN_LOSSES的图集中,该集合是否会被TensorFlow自动使用(例如,优化器在训练时使用)?还是我自己使用该集合?

收藏
2021-02-03 11:22 更新 anna •  3936
共 1 个回答
高赞 时间
0

如第二点所述,使用正则化参数是推荐的方法。你可以在get_variable中使用它,或者在variable_scope中设置一次,将所有变量进行正则化。损失在图集中收集,你需要手动将它们添加到你的成本函数中。

reg_losses = tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES)
  reg_constant = 0.01  # Choose an appropriate one.
  loss = my_normal_loss + reg_constant * sum(reg_losses)

希望有帮助!

Via:https://stackoverflow.com/a/37143333/14964791

收藏
2021-02-03 11:37 更新 karry •  3512