def _weight_drop(module, weights, dropout):
    """
    Helper for `WeightDrop`.
    """

    for name_w in weights:
        w = getattr(module, name_w)
        del module._parameters[name_w]
        module.register_parameter(name_w + '_raw', Parameter(w))

    original_module_forward = module.forward

    def forward(*args, **kwargs):
        for name_w in weights:
            raw_w = getattr(module, name_w + '_raw')
            w = torch.nn.functional.dropout(raw_w, p=dropout, training=module.training)
            setattr(module, name_w, w)

        return original_module_forward(*args)

    setattr(module, 'forward', forward)
def _weight_drop ( module , weights , dropout ) : for name_w in weights : w = getattr ( module , name_w ) del module . _parameters [ name_w ] module . register_parameter ( name_w + '_raw' , Parameter ( w ) ) original_module_forward = module . forward def forward ( * args , ** kwargs ) : for name_w in weights : raw_w = getattr ( module , name_w + '_raw' ) w = torch . nn . functional . dropout ( raw_w , p = dropout , training = module . training ) setattr ( module , name_w , w ) return original_module_forward ( * args ) setattr ( module , 'forward' , forward )
Helper for `WeightDrop`.