关于tensorflow的几种参数初始化方法小结


Posted in Python onJanuary 04, 2020

在tensorflow中,经常会遇到参数初始化问题,比如在训练自己的词向量时,需要对原始的embeddigs矩阵进行初始化,更一般的,在全连接神经网络中,每层的权值w也需要进行初始化。

tensorlfow中应该有一下几种初始化方法

1. tf.constant_initializer() 常数初始化
2. tf.ones_initializer() 全1初始化
3. tf.zeros_initializer() 全0初始化
4. tf.random_uniform_initializer() 均匀分布初始化
5. tf.random_normal_initializer() 正态分布初始化
6. tf.truncated_normal_initializer() 截断正态分布初始化
7. tf.uniform_unit_scaling_initializer() 这种方法输入方差是常数
8. tf.variance_scaling_initializer() 自适应初始化
9. tf.orthogonal_initializer() 生成正交矩阵

具体的

1、tf.constant_initializer(),它的简写是tf.Constant()

#coding:utf-8
import numpy as np 
import tensorflow as tf 
train_inputs = [[1,2],[1,4],[3,2]]
with tf.variable_scope("embedding-layer"):
  val = np.array([[1,2,3,4,5,6,7],[1,3,4,5,2,1,9],[0,12,3,4,5,7,8],[2,3,5,5,6,8,9],[3,1,6,1,2,3,5]])
  const_init = tf.constant_initializer(val)
  embeddings = tf.get_variable("embed",shape=[5,7],dtype=tf.float32,initializer=const_init)
  embed = tf.nn.embedding_lookup(embeddings, train_inputs)             #在embedding中查找train_input所对应的表示
  print("embed",embed)
  sum_embed = tf.reduce_mean(embed,1)
initall = tf.global_variables_initializer()
with tf.Session() as sess:
  sess.run(initall)
  print(sess.run(embed))
  print(sess.run(tf.shape(embed)))
  print(sess.run(sum_embed))

4、random_uniform_initializer = RandomUniform()

可简写为tf.RandomUniform()

生成均匀分布的随机数,参数有四个(minval=0, maxval=None, seed=None, dtype=dtypes.float32),分别用于指定最小值,最大值,随机数种子和类型。

6、tf.truncated_normal_initializer()

可简写tf.TruncatedNormal()

生成截断正态分布的随机数,这个初始化方法在tf中用得比较多。

它有四个参数(mean=0.0, stddev=1.0, seed=None, dtype=dtypes.float32),分别用于指定均值、标准差、随机数种子和随机数的数据类型,一般只需要设置stddev这一个参数就可以了。

8、tf.variance_scaling_initializer()

可简写为tf.VarianceScaling()

参数为(scale=1.0,mode="fan_in",distribution="normal",seed=None,dtype=dtypes.float32)

scale: 缩放尺度(正浮点数)

mode: "fan_in", "fan_out", "fan_avg"中的一个,用于计算标准差stddev的值。

distribution:分布类型,"normal"或“uniform"中的一个。

当 distribution="normal" 的时候,生成truncated normal distribution(截断正态分布) 的随机数,其中stddev = sqrt(scale / n) ,n的计算与mode参数有关。

如果mode = "fan_in", n为输入单元的结点数;

如果mode = "fan_out",n为输出单元的结点数;

如果mode = "fan_avg",n为输入和输出单元结点数的平均值。

当distribution="uniform”的时候 ,生成均匀分布的随机数,假设分布区间为[-limit, limit],则 limit = sqrt(3 * scale / n)

以上这篇关于tensorflow的几种参数初始化方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用python获得时间的实例说明
Mar 25 Python
Django中几种重定向方法
Apr 28 Python
Python实现大文件排序的方法
Jul 10 Python
利用Python如何生成随机密码
Apr 20 Python
基于python内置函数与匿名函数详解
Jan 09 Python
通过Pandas读取大文件的实例
Jun 07 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
Python微信操控itchat的方法
May 31 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
python在协程中增加任务实例操作
Feb 28 Python
基于TensorFlow常量、序列以及随机值生成实例
Jan 04 #Python
Tensorflow 实现分批量读取数据
Jan 04 #Python
Tensorflow的常用矩阵生成方式
Jan 04 #Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 #Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 #Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 #Python
tensorflow没有output结点,存储成pb文件的例子
Jan 04 #Python
You might like
PHP实现动态执行代码的方法
2016/03/25 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
类似框架的js代码
2006/11/09 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python常用特殊方法实例总结
2019/03/22 Python
简单了解Python生成器是什么
2019/07/02 Python
浅析python内置模块collections
2019/11/15 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
Notino法国:购买香水和化妆品
2019/04/15 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
客户代表实习人员自我鉴定
2013/09/27 职场文书
爱情保证书范文
2014/02/01 职场文书
数学检讨书1000字
2014/02/24 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
2014年招生工作总结
2014/11/26 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
民主评议党员个人总结
2015/02/13 职场文书
2015年保送生自荐信
2015/03/24 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
新学期开学寄语2016
2015/12/04 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
python脚本框架webpy模板控制结构
2021/11/20 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python