关于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中使用mysql数据库详细介绍
Mar 27 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
实例解析Python设计模式编程之桥接模式的运用
Mar 02 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
修改python plot折线图的坐标轴刻度方法
Dec 13 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 Python
python能在浏览器能运行吗
Jun 17 Python
python help函数实例用法
Dec 06 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&&mysql)三
2006/10/09 PHP
简单的PHP多图上传小程序代码
2011/07/17 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
js自带函数备忘 数组
2006/12/29 Javascript
服务器安全设置的几个注册表设置
2007/07/28 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
js实现分页功能
2017/05/24 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
Vue项目实现换肤功能的一种方案分析
2019/08/28 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
python去掉字符串中重复字符的方法
2014/02/27 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
python实现移动木板小游戏
2020/10/09 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
毕业自我评价范文
2013/11/17 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
怎样写离婚协议书
2014/09/10 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
营业用房租赁协议书
2014/11/26 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
vue递归实现树形组件
2022/07/15 Vue.js