一、tf.truncated_normal_initializer
初始化为正太分布
1. tf.truncated_normal_initializer
tf.truncated_normal_initializer
的意思是:从截断的正态分布中输出随机值。
生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。
ARGS:
mean:一个python标量或一个标量张量。要生成的随机值的均值。
stddev:一个python标量或一个标量张量。要生成的随机值的标准偏差。
seed:一个Python整数。用于创建随机种子。查看 tf.set_random_seed 行为。
dtype:数据类型。只支持浮点类型。
// 这是神经网络权重和过滤器的推荐初始值。
2. tf.random_normal_initializer
tf.random_normal_initializer(mean, stddev, seed, dtype)
生成一组符合标准正态分布的tensor对象
- mean:正态分布的均值,默认值 0
- stddev:正态分布的标准差, 默认值 1
- seed:随机种子,指定seed的值相同生成同样的数据
- dtype:数据类型
二、 tf.glorot_normal_initializer
另外一种初始化方式,可以采用tf.glorot_normal_initializer,参见:https://blog.csdn.net/xinxiang7/article/details/90666633
三、其它初始化方法
下面介绍一下其他的初始化方法
1. 初始化为常量
tf.constant_initializer(value, dtype)
生成一个初始值为常量value的tensor对象,value:指定的常量 dtype:数据类型
tf.zeros_initializer(dtype)
生成一个初始值全为0的tensor对象
tf.ones_initializer(dtype)
生成一个初始值全为1的tensor对象
2. 初始化为均匀分布
tf.random_uniform_initializer(minval, maxval, seed, dtype)
生成一组符合均匀分布的tensor对象
- minval:最小值
- maxval:最大值
- seed:随机数种子
- dtype:数据类型
均匀分布生成的随机数并不是从小到大或者从大到小均匀分布的,这里均匀分布的意义是每次从一组服从均匀分布的数里边随机抽取一个数
注意:初始化方法跟生成函数的区别
参考链接:
https://www.cnblogs.com/reaptomorrow-flydream/p/9490176.html
https://www.cnblogs.com/yifanrensheng/p/13583219.html
https://blog.csdn.net/u011851421/article/details/82993389
https://blog.csdn.net/dpengwang/article/details/105694426