keras之权重初始化方式


Posted in Python onMay 21, 2020

在神经网络训练中,好的权重 初始化会加速训练过程。

下面说一下kernel_initializer 权重初始化的方法。

不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是kernel_initializer 和 bias_initializer

model.add(Dense(64, kernel_initializer=initializers.random_normal(stddev=0.01)))
 
# also works; will use the default parameters.
model.add(Dense(64, kernel_initializer='random_normal'))

几种初始化方法

keras.initializers.Zeros()#全0
keras.initializers.Ones()#全1
keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None))#指定均值和方差的正态分布初始化
keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=None)#指定下边界和上边界的均匀分布初始化
keras.initializers.TruncatedNormal(mean=0.0, stddev=0.05, seed=None)#截尾高斯分布初始化,位于均值两个标准差以外的数据将会被丢弃并重新生成,形成截尾分布

自定义初始化

def my_init(shape, dtype=None):
 return K.random_normal(shape, dtype=dtype)
 
model.add(Dense(64, init=my_init))

补充知识:Keras中权重weight的初始化

Keras 的原始构造模块是模型,最简单的模型称为序贯模型, Keras 的序贯模型是神经网络层的线性管道 ( 堆栈) 。

以下代码段定义了 一个包含 12 个人工神经元的单层 网络,它预计有 8 个输入变量 ( 也称为特征):

from keras.models import Sequential
 
model =Sequential()
model.add(12,input_dim=8,kernel_initializer='random_uniform')

每个神经元可以用特定的权重进行初始化 。 Keras 提供了 几个选择 , 其中最常用的选择如下所示。

random_unifrom:权重被初始化为(-0.5,0.5)之间的均匀随机的微小数值,换句话说,给定区间里的任何值都可能作为权重 。

random_normal:根据高斯分布初始化权重,其中均值为0,标准差为0.05。

zero:所有权重被初始化为0。

以上这篇keras之权重初始化方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自然语言编码转换模块codecs介绍
Apr 08 Python
Python ldap实现登录实例代码
Sep 30 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 #Python
Python使用os.listdir和os.walk获取文件路径
May 21 #Python
keras 权重保存和权重载入方式
May 21 #Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 #Python
Python通过文本和图片生成词云图
May 21 #Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 #Python
Python 实现敏感目录扫描的示例代码
May 21 #Python
You might like
如何在PHP中进行身份认证
2006/10/09 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
python 自动提交和抓取网页
2009/07/13 Python
Python程序员开发中常犯的10个错误
2014/07/07 Python
python中bisect模块用法实例
2014/09/25 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
机械制造专业个人的自我评价
2013/12/28 职场文书
学雷锋标语
2014/06/25 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
学校会议通知范文
2015/04/15 职场文书
如何用python绘制雷达图
2021/04/24 Python