通过覆盖层初始化允许在pytorch中进行自定义权重初始化

时间:2019-12-12 08:21:41

标签: python deep-learning pytorch

我想在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)

这个想法是,如果某些层需要的话,能够选择非默认初始化

这似乎可行,但是我在任何地方都没有看到类似的东西,所以我想知道这是一个坏主意,或更具体地说,这种初始化权重的利弊是什么

0 个答案:

没有答案