[tensorflow2.0]tensorflow2.0提供的惩罚项(L1正则,L2正则)API

tensorflow2.0内置正则项

  在隐藏层中经常会使用正则来作为损失函数的惩罚项。换言之,为了约束w的可能取值空间从而防止过拟合,我们为该最优化问题加上一个约束,就是w的L1范数或者L2范数不能大于给定值。
  L2正则被用于防止模型的过拟合,L1正则项被用于产生稀疏权值矩阵。
  tf.keras.regularizers提供了几种内置类来提供正则。分别是class L1class L1L2class L2class Regularizerserialize。同时提供了三个参数作为可被正则化的对象:

  • kernel_regularizer:对该层中的权值矩阵layer.weights正则
  • bias_regularizer:对该层中的偏差矩阵layer.bias正则
  • activity_regularizer:对该层的输出值矩阵layer.bias正则

设置kernel_regularizer

dense = tf.keras.layers.Dense(3, kernel_regularizer='l1')  
layer = tf.keras.layers.Dense(
    5, input_dim=5,
    kernel_initializer='ones',
    kernel_regularizer=tf.keras.regularizers.L1(0.01),
    activity_regularizer=tf.keras.regularizers.L2(0.01))
tensor = tf.ones(shape=(5, 5)) * 2.0
out = layer(tensor)
tf.keras.regularizers.l1_l2(l1=0.01, l2=0.01)
tf.keras.regularizers.L1L2( l1=0.0, l2=0.0)

  调用kernel_regularizer=tf.keras.regularizers.l1_l2(l1=0.02, l2=0.01)时, l o s s e s = L 1 + L 2 = l 1 ∑ ( ∣ w i j ∣ ) + l 2 ∑ ( w i j 2 ) losses=L_1+L_2=l_1\sum(|w_{ij}|)+l_2\sum(w_{ij}^2) losses=L1+L2=l1(wij)+l

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
TensorFlow 2.0中,可以使用`kernel_regularizer`来实现L2正则化。2正则化是一种通过惩罚较大的权重值来减少过拟合的技术。在代码中,可以使用`regularizers.l1_l2`函数来指定L2正则化的参数。例如,下面的代码展示了如何在TensorFlow 2.0中使用L2正则化: ``` from tensorflow.keras import layers from tensorflow.keras import regularizers layer = layers.Dense(units=64, kernel_regularizer=regularizers.l1_l2(l1=1e-5, l2=1e-4)) ``` 这里,`kernel_regularizer`参数接受一个`regularizers.l1_l2`对象,该对象的参数`l1`和`l2`分别代表L1正则化L2正则化的权重。通过调整这些参数的值,可以控制正则化的强度。 值得一提的是,上述代码只展示了L2正则化的实现,并未给出L1正则化的代码。如果你想了解如何实现L1正则化,可以参考一些相关的教程或自行实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积、激活、初始化、正则...](https://blog.csdn.net/fengdu78/article/details/109020054)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [简洁明了的tensorflow2.0教程——正则化操作](https://blog.csdn.net/JohnLeeK/article/details/106335532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值