code: 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)
docs: Helper for `WeightDrop`.