关于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 相关文章推荐
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
基于Python os模块常用命令介绍
Nov 03 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
python time.sleep()是睡眠线程还是进程
Jul 09 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
10个Python面试常问的问题(小结)
Nov 20 Python
Matplotlib使用字符串代替变量绘制散点图的方法
Feb 17 Python
Python新手如何进行闭包时绑定变量操作
May 29 Python
Django+Celery实现定时任务的示例
Jun 23 Python
python获取字符串中的email
Mar 31 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
php图片缩放实现方法
2014/02/20 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
粗略分析Python中的内存泄漏
2015/04/23 Python
python opencv之SIFT算法示例
2018/02/24 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
使用python接入微信聊天机器人
2020/03/31 Python
Python实现12306火车票抢票系统
2019/07/04 Python
linux 下selenium chrome使用详解
2020/04/02 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
python中turtle库的简单使用教程
2020/11/11 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
项目资料员岗位职责
2013/12/10 职场文书
文明风采获奖感言
2014/02/18 职场文书
高中生的自我评价
2014/03/04 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
应届生简历自我评价
2015/03/11 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
详解NodeJS模块化
2021/06/15 NodeJs
React实现动效弹窗组件
2021/06/21 Javascript