Keras教学(8):Keras的约束项constraints,看这一篇就够了

【写在前面】:大家好,我是【猪葛】
一个很看好AI前景的算法工程师
在接下来的系列博客里面我会持续更新Keras的教学内容(文末有大纲)
内容主要分为两部分
第一部分是Keras的基础知识
第二部分是使用Keras搭建FasterCNN、YOLO目标检测神经网络
代码复用性高
如果你也感兴趣,欢迎关注我的动态一起学习
学习建议:
有些内容一开始学起来有点蒙,对照着“学习目标”去学习即可
一步一个脚印,走到山顶再往下看一切风景就全明了了



本篇博客学习目标:1、理解网络层约束项的用法













一、约束项的概念和使用

概念

constraints 模块的函数允许在优化期间对网络参数设置约束(例如非负性)。

使用

约束是以层为对象进行的。具体的 API 因层而异,但 DenseConv1DConv2DConv3D 这些层具有统一的 API。

约束层开放 2 个关键字参数:

  • kernel_constraint 用于主权重矩阵。只能接受函数实例对象
  • bias_constraint 用于偏置。只能接受函数实例对象

用法举例:

from tensorflow.keras.constraints import max_norm
model.add(Dense(64, kernel_constraint=max_norm(2.)))

或者:

import tensorflow.keras as keras
model.add(Dense(64, kernel_constraint=keras.constraints.MaxNorm(max_value=2, axis=0))

二、可用的约束

keras中自带的可用的约束有(一般我们对网络层的约束选项都选择None就可以了):

keras.constraints.MaxNorm(max_value=2, axis=0)  # MaxNorm 最大范数权值约束。映射到每个隐藏单元的权值的约束,使其具有小于或等于期望值的范数。
keras.constraints.NonNeg()  # 权重非负的约束。
keras.constraints.UnitNorm(axis=0)  # 映射到每个隐藏单元的权值的约束,使其具有单位范数。
keras.constraints.MinMaxNorm(min_value=0.0, max_value=1.0, rate=1.0, axis=0)  # MinMaxNorm 最小/最大范数权值约束。映射到每个隐藏单元的权值的约束,使其范数在上下界之间。

约束项我们不常用,一般防止过拟合我们使用比较多的方式是正则化,关于正则化的内容欢迎翻看这篇博客:【Keras教学(7)】正则化Regularizers


本期内容就到这里,后续系列内容会持续更新,欢迎关注我的动态一起学习,附上系列内容内容大纲:
在这里插入图片描述

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值