Files

35 lines
1.2 KiB
Python
Executable File

# FROM LSTR
import math
import torch.nn as nn
def weights_init(m):
if isinstance(m, nn.Linear):
nn.init.kaiming_uniform_(m.weight.data, a=math.sqrt(5))
elif isinstance(m, nn.Conv1d):
nn.init.normal_(m.weight.data)
if m.bias is not None:
nn.init.normal_(m.bias.data)
elif isinstance(m, nn.Conv2d):
nn.init.xavier_normal_(m.weight.data)
if m.bias is not None:
nn.init.normal_(m.bias.data)
elif isinstance(m, nn.ConvTranspose1d):
nn.init.normal_(m.weight.data)
if m.bias is not None:
nn.init.normal_(m.bias.data)
elif isinstance(m, nn.ConvTranspose2d):
nn.init.xavier_normal_(m.weight.data)
if m.bias is not None:
nn.init.normal_(m.bias.data)
elif isinstance(m, nn.BatchNorm1d):
nn.init.normal_(m.weight.data, mean=1, std=0.02)
nn.init.constant_(m.bias.data, 0)
elif isinstance(m, nn.BatchNorm2d):
nn.init.normal_(m.weight.data, mean=1, std=0.02)
nn.init.constant_(m.bias.data, 0)
elif isinstance(m, nn.GRUCell):
for param in m.parameters():
if len(param.shape) >= 2:
nn.init.orthogonal_(param.data)
else:
nn.init.normal_(param.data)