【问题标题】:How to add L1 norm to loss function in Keras or Tensorflow?如何在 Keras 或 Tensorflow 中将 L1 范数添加到损失函数中?
【发布时间】:2020-02-11 19:34:35
【问题描述】:

我正在尝试复现一篇深度学习论文的实验结果,

我注意到损失函数,类别交叉熵有一个 L1 正则化可以在下面看到,

那么,如何计算模型复杂度并在 Keras/Tensorflow 中添加正确的自定义损失函数?

【问题讨论】:

    标签: python tensorflow machine-learning keras deep-learning


    【解决方案1】:

    这只是一个规范,可能不一定是 1-规范。不过,在 tensorflow 中,如果您将参数存储在一个列表中(我将其称为 para_list),这将非常简单:

    l1_reg_term = sum([tf.reduce_sum(tf.abs(_var)) for _var in para_list])
    reg_loss = loss + alpha * l1_reg_term
    

    获取参数的一种方法是命名它们。然后,您可以使用 tf.get_global_variables() 或 tf.get_trainable_variables() 从全局空间中提取它们。

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 2022-01-18
      • 2021-12-18
      • 2020-07-28
      • 2017-08-20
      • 2018-10-28
      • 2017-12-29
      • 2017-10-23
      • 2020-08-28
      相关资源
      最近更新 更多