35 lines
1.2 KiB
Python
Executable File
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) |