tf

2022-02-11

CNN中最重要的是参数,包括W,b。我们训练CNN的最终目标是得到最好的参数,使目标函数达到最小值。参数的初始化也很重要,所以很多人关注微调。那么tf提供了哪些方法来初始化参数,我们可以自己初始化吗?

所有初始化方法都定义在 //ops/.py

1、tf.()

也可以简写为 tf.()

初始化为常数,这非常有用,通常偏置项用它初始化。

从它派生的两个初始化方法:

a、tf.(),也可以简写为tf.Zeros()

b、tf.(),也可以简写为tf.Ones()

例子:在卷积层,初始化偏置项b为0,有多种写法:

conv1 = tf..(, =64, =7, =2, =tf.nn.relu, =tf.(=0.01) =tf.(0), )

或者:

=tf.(0)

或者:

=tf.()

或者:

=tf.Zeros()

示例:如何将 W 初始化为拉普拉斯算子?

值 = [1, 1, 1, 1, -8, 1, 1, 1, 1]init = tf.(value)W= tf.(‘W’, shape=[3, 3], =init)

2、tf.()

或简写为 tf.()

生成截断正态分布的随机数。这种初始化方式似乎在 tf.

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

图片[1]-tf-唐朝资源网

例子:

conv1 = tf..(, =64, =7, =2, =tf.nn.relu, =tf.(=0.01) =tf.(0), )

或者:

conv1 = tf..(, =64, =7, =2, =tf.nn.relu, =tf.(=0.01) =tf.(), )

3、tf.lizer()

可简写为 tf.()

从具有相同参数的标准正态分布生成随机数。

4、= ()

可简写为 tf.()

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

5、tf.()

可简写为 tf.()

类似于均匀分布,只不过这种初始化方式不需要指定最小值和最大值,是通过计算来计算的。参数为 (=1.0,seed=None,dtype=.)

=数学。sqrt(3 / ) *

这里是输入数据的维度,假设输入为x,运算为x * W,则=W.shape[0]

其分布区间为 [ -, ]

6、tf.()

可简写为 tf.()

参数为 (scale=1.0, mode=””,=””, seed=None, dtype=.)

scale:按比例缩放(正浮点数)

模式:“”,“”,“”之一,用于计算标准偏差的值。

: 分发类型,”” 或 “” 之一。

当 = “” 时,生成(截断正态分布)随机数,其中 = sqrt(scale / n),n 的计算与众数参数有关。

如果mode = “”,n是输入单元的节点数;

如果mode = “”,n是输出单元中的节点数;

如果 mode = “”,n 是输入和输出单元中节点数的平均值。

当 = “” 时,生成均匀分布的随机数,假设分布区间为[-limit, limit],则

限制 = sqrt(3 * 比例 / n)

7、tf.er()

tf.() 的简写

生成随机数的正交矩阵。

当要生成的参数是2维的时候,这个正交矩阵是通过SVD从一个均匀分布的随机数矩阵中分解出来的。

8、tf.()

图片[2]-tf-唐朝资源网

也称为,使用均匀分布 ( ) 初始化数据。

假设均匀分布区间为[-limit,limit],则

限制=sqrt(6 / ( + ))

其中 和 分别表示输入单元中的节点数和输出单元中的节点数。

9、利泽()

也被称为。数据由 1 初始化。

= sqrt(2 / ( + ))

其中 和 分别表示输入单元中的节点数和输出单元数

分类:

技术要点:

相关文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容