xavier_normal

xavier_normal_(tensor: Tensor, gain: float = 1.0) Tensor[source]

初始化张量的权重,类似于Glorot/Xavier初始化。

假设它是一个线性层,fan_in 为零,fan_outprod(tensor.shape[1:]),并使用 Xavier Normal 初始化,即用从 \(\mathcal{N}(0, \text{std}^2)\) 中采样的值填充输入 tensor 的权重,其中

\[\text{std} = \text{gain} \times \sqrt{\frac{2}{\text{fan_out}}}\]

示例用法:

>>> import torch, pykeen.nn.init
>>> w = torch.empty(3, 5)
>>> pykeen.nn.init.xavier_normal_(w, gain=torch.nn.init.calculate_gain("relu"))
Parameters:
  • tensor (Tensor) – 一个用于初始化的张量

  • 增益 (float) – 一个可选的缩放因子,默认为1.0。

Returns:

使用此初始化器的权重张量。

Return type:

Tensor