Skip to content

torch.nn.init

原文: https://pytorch.org/docs/stable/nn.init.html


torch.nn.init.calculate_gain(nonlinearity, param=None)¶

返回给定非线性函数的推荐增益值。 取值如下:

|

非线性

|

获得

| | --- | --- | | 线性/身份 | | | 转换{1,2,3} D | | | 乙状结肠 | | | h | | | ReLU | | | 泄漏的露露 | |

参数

  • 非线性 –非线性函数 (<cite>nn.functional</cite> 名称)

  • 参数 –非线性功能的可选参数

例子

>>> gain = nn.init.calculate_gain('leaky_relu', 0.2)  # leaky_relu with negative_slope=0.2


torch.nn.init.uniform_(tensor, a=0.0, b=1.0)¶

用从均匀分布中得出的值填充输入张量。

Parameters

  • 张量 – n 维<cite>torch.张量</cite>

  • a –均匀分布的下限

  • b –均匀分布的上限

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.uniform_(w)


torch.nn.init.normal_(tensor, mean=0.0, std=1.0)¶

使用从正态分布中得出的值填充输入张量。

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • 平均值 –正态分布的平均值

  • std –正态分布的标准偏差

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.normal_(w)


torch.nn.init.constant_(tensor, val)¶

用值填充输入张量。

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • val –用张量填充张量的值

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.constant_(w, 0.3)


torch.nn.init.ones_(tensor)¶

用标量值 <cite>1</cite> 填充输入张量。

Parameters

tensor – an n-dimensional <cite>torch.Tensor</cite>

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.ones_(w)


torch.nn.init.zeros_(tensor)¶

用标量值 <cite>0</cite> 填充输入张量。

Parameters

tensor – an n-dimensional <cite>torch.Tensor</cite>

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.zeros_(w)


torch.nn.init.eye_(tensor)¶

用单位矩阵填充二维输入<cite>张量</cite>。 在<cite>线性</cite>层中保留输入的身份,在该层中将保留尽可能多的输入。

Parameters

张量 –二维<cite>torch.张量</cite>

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.eye_(w)


torch.nn.init.dirac_(tensor)¶

使用 Dirac delta 函数填充{3,4,5}维输入<cite>张量</cite>。 保留<cite>卷积</cite>层中输入的身份,其中保留尽可能多的输入通道。

Parameters

张量 – {3,4,5}维的<cite>torch.张量</cite>

Examples

>>> w = torch.empty(3, 16, 5, 5)
>>> nn.init.dirac_(w)


torch.nn.init.xavier_uniform_(tensor, gain=1.0)¶

根据<cite>中所述的方法,用值填充输入<cite>张量</cite>的值。了解训练深度前馈神经网络</cite>的难度-Glorot,X。& Bengio,Y.(2010),使用 均匀分布。 结果张量将具有从采样的值,其中

也称为 Glorot 初始化。

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • 增益 –可选的比例因子

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.xavier_uniform_(w, gain=nn.init.calculate_gain('relu'))


torch.nn.init.xavier_normal_(tensor, gain=1.0)¶

根据<cite>中所述的方法,用值填充输入<cite>张量</cite>。了解训练深度前馈神经网络</cite>的难度-Glorot,X。& Bengio,Y.(2010),使用 正态分布。 结果张量将具有从采样的值,其中

Also known as Glorot initialization.

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • gain – an optional scaling factor

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.xavier_normal_(w)


torch.nn.init.kaiming_uniform_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')¶

根据<cite>中描述的方法,用值填充输入<cite>张量</cite>的值。深入研究整流器:在 ImageNet 分类</cite>上超越人类水平的性能-He,K.等。 (2015),使用均匀分布。 结果张量将具有从采样的值,其中

也称为 He 初始化。

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • a –在该层之后使用的整流器的负斜率(仅

  • with'leaky_relu')(使用了)–

  • 模式'fan_in'(默认)或'fan_out'。 选择'fan_in'会保留前向传递中权重差异的大小。 选择'fan_out'可以保留反向传递的幅度。

  • 非线性 –非线性函数(<cite>为功能性</cite>名称),建议仅与'relu''leaky_relu'(默认)一起使用。

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.kaiming_uniform_(w, mode='fan_in', nonlinearity='relu')


torch.nn.init.kaiming_normal_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')¶

根据<cite>中描述的方法,用值填充输入<cite>张量</cite>的值。深入研究整流器:在 ImageNet 分类</cite>上超越人类水平的性能-He,K.等。 (2015),使用正态分布。 结果张量将具有从采样的值,其中

Also known as He initialization.

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • a – the negative slope of the rectifier used after this layer (only

  • with 'leaky_relu') (used) –

  • mode – either 'fan_in' (default) or 'fan_out'. Choosing 'fan_in' preserves the magnitude of the variance of the weights in the forward pass. Choosing 'fan_out' preserves the magnitudes in the backwards pass.

  • nonlinearity – the non-linear function (<cite>nn.functional</cite> name), recommended to use only with 'relu' or 'leaky_relu' (default).

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.kaiming_normal_(w, mode='fan_out', nonlinearity='relu')


torch.nn.init.orthogonal_(tensor, gain=1)¶

用(半)正交矩阵填充输入的<cite>张量</cite>,如<cite>中所述,用于深度线性神经网络</cite>中学习的非线性动力学的精确解-Saxe,A.等。 (2013)。 输入张量必须至少具有 2 个维度,对于 2 个以上的张量,尾随维度将被展平。

Parameters

  • 张量 – n 维<cite>torch张量</cite>,其中

  • 增益 –可选比例因子

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.orthogonal_(w)


torch.nn.init.sparse_(tensor, sparsity, std=0.01)¶

将 2D 输入<cite>张量</cite>填充为稀疏矩阵,其中将从正态分布提取非零元素,如<cite>通过无麻木优化的深度学习</cite>中所述- Martens,J.(2010 年)。

Parameters

  • tensor – an n-dimensional <cite>torch.Tensor</cite>

  • 稀疏性 –每列中要设置为零的元素比例

  • std –用于生成非零值的正态分布的标准偏差

Examples

>>> w = torch.empty(3, 5)
>>> nn.init.sparse_(w, sparsity=0.1)



回到顶部