xavier_normal
- xavier_normal_(tensor: Tensor, gain: float = 1.0) Tensor[source]
初始化张量的权重,类似于Glorot/Xavier初始化。
假设它是一个线性层,fan_in 为零,fan_out 为 prod(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"))