torch.nn.init¶
- torch.nn.init 的calculate_gain(非线性,param=None)[来源]¶
返回给定非线性函数的推荐增益值。 值如下所示:
非线性
获得
线性 / 恒等
Conv{1,2,3}D
乙状结肠
谭
ReLU 系列
Leaky Relu
色鲁
警告
为了实现自归一化神经网络 , 您应该使用 ,而不是 . 这为初始权重提供了 , 这对于在正向传递中诱导稳定的固定点是必要的。 相反,的默认增益牺牲了归一化 效果,以便在矩形层中实现更稳定的梯度流。
nonlinearity='linear'
nonlinearity='selu'
1 / N
SELU
- 参数
nonlinearity – 非线性函数 (nn.函数名称)
param – 非线性函数的可选参数
例子
>>> gain = nn.init.calculate_gain('leaky_relu', 0.2) # leaky_relu with negative_slope=0.2
- torch.nn.init 的uniform_(张量,a=0.0,b=1.0)[来源]¶
使用从 uniform 中提取的值填充输入 Tensor 分配.
例子
>>> w = torch.empty(3, 5) >>> nn.init.uniform_(w)
- torch.nn.init 的normal_(张量,平均值=0.0,标准=1.0)[来源]¶
使用从法线中提取的值填充输入 Tensor 分配.
例子
>>> w = torch.empty(3, 5) >>> nn.init.normal_(w)
- torch.nn.init 的constant_(tensor, val)[来源]¶
将 input Tensor 填充值.
例子
>>> w = torch.empty(3, 5) >>> nn.init.constant_(w, 0.3)
- torch.nn.init 的zeros_(张量)[来源]¶
用标量值 0 填充输入 Tensor。
例子
>>> w = torch.empty(3, 5) >>> nn.init.zeros_(w)
- torch.nn.init 的eye_(Tensor)[来源]¶
用恒等式填充二维输入 Tensor 矩阵。保留线性层中输入的标识,其中 尽可能保留许多输入。
- 参数
tensor – 一个 2 维火torch.Tensor
例子
>>> w = torch.empty(3, 5) >>> nn.init.eye_(w)
- torch.nn.init 的dirac_(tensor, groups=1)[来源]¶
用 Dirac 填充 {3, 4, 5} 维输入 Tensor delta 函数。保留卷积层中 inputs 的标识,其中保留了尽可能多的 input 通道。倘 of groups>1,每组通道都保留身份
- 参数
tensor – 一个 {3, 4, 5} 维火torch.Tensor
groups (int, optional) – conv 层中的组数 (默认值:1)
例子
>>> w = torch.empty(3, 16, 5, 5) >>> nn.init.dirac_(w) >>> w = torch.empty(3, 24, 5, 5) >>> nn.init.dirac_(w, 3)
- torch.nn.init 的xavier_uniform_(张量,增益=1.0)[来源]¶
根据方法用值填充输入 Tensor 如了解训练深度前馈的难度中所述 神经网络 - Glorot, X. & Bengio, Y. (2010),使用统一的 分配。生成的张量将具有从哪里
也称为 Glorot 初始化。
例子
>>> w = torch.empty(3, 5) >>> nn.init.xavier_uniform_(w, gain=nn.init.calculate_gain('relu'))
- torch.nn.init 的xavier_normal_(张量,增益=1.0)[来源]¶
根据方法用值填充输入 Tensor 如了解训练深度前馈的难度中所述 神经网络 - Glorot, X. & Bengio, Y. (2010),使用法线 分配。生成的张量将具有从哪里
也称为 Glorot 初始化。
例子
>>> w = torch.empty(3, 5) >>> nn.init.xavier_normal_(w)
- torch.nn.init 的kaiming_uniform_(张量,a=0,模式='fan_in',非线性='leaky_relu')[来源]¶
根据方法用值填充输入 Tensor 在 Delving Deep into rectifiers: Beyonding human level (深入研究整流器:超越人类水平) 中描述道 ImageNet 分类的性能 - He, K. et al. (2015) 使用 均匀分布。生成的张量将具有从哪里
也称为 He 初始化。
- 参数
例子
>>> w = torch.empty(3, 5) >>> nn.init.kaiming_uniform_(w, mode='fan_in', nonlinearity='relu')
- torch.nn.init 的kaiming_normal_(张量,a=0,模式='fan_in',非线性='leaky_relu')[来源]¶
根据方法用值填充输入 Tensor 在 Delving Deep into rectifiers: Beyonding human level (深入研究整流器:超越人类水平) 中描述道 ImageNet 分类的性能 - He, K. et al. (2015) 使用 正态分布。生成的张量将具有从哪里
也称为 He 初始化。
- 参数
例子
>>> w = torch.empty(3, 5) >>> nn.init.kaiming_normal_(w, mode='fan_out', nonlinearity='relu')
- torch.nn.init 的trunc_normal_(张量,平均值=0.0,标准差=1.0,a=-2.0,b=2.0,生成器=无)[来源]¶
使用从截断的 正态分布。这些值实际上是从 正态分布值在重新绘制,直到它们位于 边界。用于生成随机值的方法有效 最佳时间.
- 参数
- 返回类型
例子
>>> w = torch.empty(3, 5) >>> nn.init.trunc_normal_(w)
- torch.nn.init 的orthogonal_(tensor, gain=1)[来源]¶
用(半)正交矩阵填充输入 Tensor,如 在 Exact solutions to the nonlinear dynamics of learning in deep 中进行了描述 线性神经网络 - Saxe, A. et al. (2013)。输入张量必须具有 至少 2 个维度,对于维度超过 2 个的张量, 尾随维度被展平。
- 参数
tensor – 一个 n 维Torch。Tensor 的 Tensor 中,其中
gain – 可选缩放因子
例子
>>> w = torch.empty(3, 5) >>> nn.init.orthogonal_(w)