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 分配.
- 参数
tensor – 一个 n 维火torch.Tensor
a – 均匀分布的下限
b – 均匀分布的上限
例子
>>> w = torch.empty(3, 5) >>> nn.init.uniform_(w)
-
torch.nn.init.
normal_
(张量,平均值=0.0,标准=1.0)[来源]¶ 使用从法线中提取的值填充输入 Tensor 分配.
- 参数
tensor – 一个 n 维火torch.Tensor
mean – 正态分布的平均值
std – 正态分布的标准差
例子
>>> w = torch.empty(3, 5) >>> nn.init.normal_(w)
-
torch.nn.init.
constant_
(张量,val)[来源]¶ 将 input Tensor 填充值.
- 参数
tensor – 一个 n 维火torch.Tensor
val – 用于填充张量的值
例子
>>> w = torch.empty(3, 5) >>> nn.init.constant_(w, 0.3)
-
torch.nn.init.
ones_
(张量)[来源]¶ 用标量值 1 填充输入 Tensor。
- 参数
tensor – 一个 n 维火torch.Tensor
例子
>>> w = torch.empty(3, 5) >>> nn.init.ones_(w)
-
torch.nn.init.
zeros_
(张量)[来源]¶ 用标量值 0 填充输入 Tensor。
- 参数
tensor – 一个 n 维火torch.Tensor
例子
>>> w = torch.empty(3, 5) >>> nn.init.zeros_(w)
-
torch.nn.init.
eye_
(张量)[来源]¶ 用恒等式填充二维输入 Tensor 矩阵。保留线性层中输入的标识,其中 尽可能保留许多输入。
- 参数
tensor – 一个 2 维火torch.Tensor
例子
>>> w = torch.empty(3, 5) >>> nn.init.eye_(w)
-
torch.nn.init.
dirac_
(张量,组=1)[来源]¶ 用 Dirac 填充 {3, 4, 5} 维输入 Tensor delta 函数。保留卷积层中 inputs 的标识,其中保留了尽可能多的 input 通道。倘 of groups>1,每组通道都保留身份
- 参数
tensor – 一个 {3, 4, 5} 维火torch.Tensor
groups (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 初始化。
- 参数
tensor – 一个 n 维火torch.Tensor
gain – 可选的缩放因子
例子
>>> 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 初始化。
- 参数
tensor – 一个 n 维火torch.Tensor
gain – 可选的缩放因子
例子
>>> 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 初始化。
- 参数
tensor – 一个 n 维火torch.Tensor
a – 此层之后使用的整流器的负斜率(仅 用于
'leaky_relu'
)mode – (默认) 或 .选择 将保留 向前传球。选择此项将保留 向后传递。
'fan_in'
'fan_out'
'fan_in'
'fan_out'
nonlinearity – 非线性函数 (nn.函数名称), 建议仅与 OR 一起使用(默认)。
'relu'
'leaky_relu'
例子
>>> 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 初始化。
- 参数
tensor – 一个 n 维火torch.Tensor
a – 此层之后使用的整流器的负斜率(仅 用于
'leaky_relu'
)mode – (默认) 或 .选择 将保留 向前传球。选择此项将保留 向后传递。
'fan_in'
'fan_out'
'fan_in'
'fan_out'
nonlinearity – 非线性函数 (nn.函数名称), 建议仅与 OR 一起使用(默认)。
'relu'
'leaky_relu'
例子
>>> w = torch.empty(3, 5) >>> nn.init.kaiming_normal_(w, mode='fan_out', nonlinearity='relu')
-
torch.nn.init.
orthogonal_
(张量,增益=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)