Source code for textbox.model.init

# @Time   : 2020/11/14
# @Author : Junyi Li, Gaole He
# @Email  : lijunyi@ruc.edu.cn

"""
textbox.model.init
########################
"""

import torch.nn as nn
from torch.nn.init import xavier_normal_, xavier_uniform_, constant_


[docs]def xavier_normal_initialization(module): r""" using `xavier_normal_`_ in PyTorch to initialize the parameters in nn.Embedding and nn.Linear layers. For bias in nn.Linear layers, using constant 0 to initialize. .. _`xavier_normal_`: https://pytorch.org/docs/stable/nn.init.html?highlight=xavier_normal_#torch.nn.init.xavier_normal_ Examples: >>> self.apply(xavier_normal_initialization) """ if isinstance(module, nn.Embedding): xavier_normal_(module.weight.data) elif isinstance(module, nn.Linear): xavier_normal_(module.weight.data) if module.bias is not None: constant_(module.bias.data, 0)
[docs]def xavier_uniform_initialization(module): r""" using `xavier_uniform_`_ in PyTorch to initialize the parameters in nn.Embedding and nn.Linear layers. For bias in nn.Linear layers, using constant 0 to initialize. .. _`xavier_uniform_`: https://pytorch.org/docs/stable/nn.init.html?highlight=xavier_uniform_#torch.nn.init.xavier_uniform_ Examples: >>> self.apply(xavier_uniform_initialization) """ if isinstance(module, nn.Embedding): xavier_uniform_(module.weight.data) elif isinstance(module, nn.Linear): xavier_uniform_(module.weight.data) if module.bias is not None: constant_(module.bias.data, 0)