python - 如何在 Keras 或 Tensorflow 中将 L1 范数添加到损失函数中?
问题描述
我正在尝试重现深度学习论文的实验结果,
我注意到损失函数,类别交叉熵有一个 L1 正则化,如下所示,
那么,如何计算模型复杂度并在 Keras/Tensorflow 中添加正确的自定义损失函数?
解决方案
这只是一个规范,可能不一定是 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() 从全局空间中提取它们。
推荐阅读
- css - Fullcalendar 如何打印 div:媒体打印
- neo4j - Neo4j 在 Windows 2016 数据中心上运行缓慢
- python - 尝试从命令行运行 python 脚本时出现导入错误
- android - AndroidKeyStore 没有这样的提供者
- bash - “moveToLocal:选项'-moveToLocal'尚未实现”是什么意思。方法?
- python-3.x - 如何使用正则表达式将数字与数据框分开?
- c - 如何将所有元音从字符串移动到不同的数组
- python-3.x - 如何修复在 python3 上导入模块的错误
- libgdx - LibGdx/Box2D 在移动设备上的性能不佳
- maven - mvn 部署失败:未在 POM 中指定存储库元素