TensorFlow 参数初始化方法

一、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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
TensorFlow 2.0 提供了多种参数初始化的方式,可以通过 `tf.keras.initializers` 模块进行调用。以下是一些常用的参数初始化方法: 1. 随机初始化:常用的随机初始化方法有 `tf.keras.initializers.RandomNormal` 和 `tf.keras.initializers.RandomUniform`,分别按照正态分布和均匀分布进行随机初始化。 2. 常数初始化:可以使用 `tf.keras.initializers.Constant` 来将参数初始化为一个常数值。 3. 单位矩阵初始化:可以使用 `tf.keras.initializers.Identity` 来将参数初始化为单位矩阵。 4. 正交矩阵初始化:可以使用 `tf.keras.initializers.Orthogonal` 来将参数初始化为正交矩阵。 5. Glorot初始化:可以使用 `tf.keras.initializers.GlorotUniform` 或 `tf.keras.initializers.GlorotNormal` 来进行 Glorot 初始化,它是一种针对激活函数为 tanh 和 sigmoid 的参数初始化方法。 6. He初始化:可以使用 `tf.keras.initializers.he_uniform` 或 `tf.keras.initializers.he_normal` 来进行 He 初始化,它是一种针对激活函数为 ReLU 的参数初始化方法。 以上这些初始化方法都可以通过在网络层中设置 `kernel_initializer` 或 `bias_initializer` 参数进行调用,例如: ```python from tensorflow.keras.layers import Dense from tensorflow.keras.initializers import GlorotUniform dense_layer = Dense(units=64, activation='relu', kernel_initializer=GlorotUniform()) ``` 这里使用 Glorot 初始化方法初始化了一个包含 64 个神经元的全连接层。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微知girl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值