我想在pytorch中创建新层时直接允许选择初始化
这样我就可以定义一个新层,例如:
my_layer = LinearLayer(in_features, out_features, bias=False, init = "xavier")
我正在考虑做这样的事情:
class LinearLayer(nn.Linear):
def __init__(self, in_features, out_features, bias=False, initialization='xavier')
super().__init__(in_features, out_features, bias)
do_initialization(self, initialization)
def do_initialization(layer, initialization)
if initialization is not None:
if initialization == 'xavier'
torch.nn.init.xavier_uniform_(layer.weight)
这个想法是,如果某些层需要的话,能够选择非默认初始化
这似乎可行,但是我在任何地方都没有看到类似的东西,所以我想知道这是一个坏主意,或更具体地说,这种初始化权重的利弊是什么