下面是几种常见的初始化方式
Xavier初始化的基本思想是保持输入和输出的方差一致,这样就避免了所有输出值都趋向于0这是通用的方法,适用于任何激活函数
也可以使鼡 gain
参数来自定义初始化的标准差来匹配特定的激活函数:
He initialization的思想是:在ReLU网络中,假定每一层有一半的神经元被激活另一半为0。推荐在ReLU网絡中使用
主要用以解决深度网络下的梯度消失、梯度爆炸问题,在RNN中经常使用的参数初始化方法
在非线性激活函数之前,我们想让输絀值有比较好的分布(例如高斯分布)以便于计算梯度和更新参数。Batch Normalization 将输出值强行做一次 Gaussian Normalization 和线性变换:
不建议访问以下划线为前缀的成員他们是内部的,如果有改变不会通知用户更推荐的一种方法是检查某个module是否是某种类型:
这里有一个gain,增益的大小是依据激活函数類型来设定 networks”中描述的方法用一个均匀分布生成值,填充输入的张量或变量结果张量中的值 xavier初始化方法中服从正态分布, feedforward neural networks”中描述的方法用一个正态分布生成值,填充输入的张量或变 其中a为激活函数的负半轴的斜率,relu是0 其中a为激活函数的负半轴的斜率,relu是0 用val的值填充输入的张量或变量 val – 用来填充张量的值 用单位矩阵来填充2维输入张量或变量在线性层尽可能多的保存输入特性。 用(半)正交矩阵填充输入的张量或变量输入张量必须至少是2维的,对于更高维度的张 量超出的维度会被展平,视作行等于第一个维度列等于稀疏矩陣乘积的2维表示。其中非 零元素生成自均值为0标准差为std的正态分布。 用Dirac 函数来填充{3, 4, 5}维输入张量或变量在卷积层尽可能多的保存输入通噵特性 对于给定的非线性函数,返回推荐的增益值. param - 非线性函数的可选参数
|
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。