torch.nn.utils.prune.l1_unstructured¶
-
torch.nn.utils.prune.
l1_unstructured
(module, name, amount)[source]¶ Prunes tensor corresponding to parameter called
name
inmodule
by removing the specified amount of (currently unpruned) units with the lowest L1-norm. Modifies module in place (and also return the modified module) by: 1) adding a named buffer calledname+'_mask'
corresponding to the binary mask applied to the parametername
by the pruning method. 2) replacing the parametername
by its pruned version, while the original (unpruned) parameter is stored in a new parameter namedname+'_orig'
.- Parameters
module (nn.Module) – module containing the tensor to prune
name (str) – parameter name within
module
on which pruning will act.amount (int or float) – quantity of parameters to prune. If
float
, should be between 0.0 and 1.0 and represent the fraction of parameters to prune. Ifint
, it represents the absolute number of parameters to prune.
- Returns
modified (i.e. pruned) version of the input module
- Return type
module (nn.Module)
Examples
>>> m = prune.l1_unstructured(nn.Linear(2, 3), 'weight', amount=0.2) >>> m.state_dict().keys() odict_keys(['bias', 'weight_orig', 'weight_mask'])