torch.nn.utils.prune.l1_unstructured
-
torch.nn.utils.prune.l1_unstructured(module, name, amount, importance_scores=None)[source] -
Удаляет тензор, соответствующий параметру с именем
nameвmodule, удаляя указанноеamount(в настоящее время не обрезанных) единиц с наименьшей нормой L1. Модифицирует модуль на месте (а также возвращает изменённый модуль), путём:- добавления именованного буфера с именем
name+'_mask', соответствующего двоичной маске, применённой к параметруnameметодом обрезки. - замены параметра
nameего обрезанной версией, в то время как исходный (необрезанный) параметр сохраняется в новом параметре с именемname+'_orig'.
- Parameters:
-
- module (nn.Module) – модуль, содержащий тензор для обрезки
-
name (str) – имя параметра в
module, на котором будет действовать обрезка. -
amount (int or float) – количество параметров для обрезки. Если
float, должно быть между 0,0 и 1,0 и представлять собой долю параметров для обрезки. Еслиint, оно представляет собой абсолютное количество параметров для обрезки. - importance_scores (torch.Tensor) – тензор оценок важности (той же формы, что и параметр модуля), используемый для вычисления маски для обрезки. Значения в этом тензоре указывают на важность соответствующих элементов в параметре, который подлежит обрезке. Если не указан или равен None, будет использоваться параметр модуля.
- Returns:
-
изменённая (т.е. обрезанная) версия входного модуля
- Return type:
-
модуль (nn.Module)
Примеры
>>> m = prune.l1_unstructured(nn.Linear(2, 3), 'weight', amount=0.2) >>> m.state_dict().keys() odict_keys(['bias', 'weight_orig', 'weight_mask'])
- добавления именованного буфера с именем
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.nn.utils.prune.l1_unstructured.html