Spec-Zone.ru › PyTorch 2

torch.nn.utils.prune.l1_unstructured

torch.nn.utils.prune.l1_unstructured(module, name, amount, importance_scores=None) [source]

Обрезает тензор, соответствующий параметру, названному name в module, удаляя указанное количество amount (в настоящее время не обрезанных) единиц с наименьшей нормой L1. Модифицирует модуль на месте (а также возвращает измененный модуль) следующим образом:

  1. добавляет именованный буфер, называемый name+'_mask', соответствующий двоичной маске, применённой к параметру name методом обрезки.
  2. заменяет параметр name его обрезанной версией, в то время как исходный (не обрезанный) параметр хранится в новом параметре под именем name+'_orig'.
Параметры
  • module (nn.Module) – модуль, содержащий тензор для обрезки
  • name (str) – имя параметра внутри module, на котором будет выполняться обрезка.
  • amount (int или float) – количество параметров для обрезки. Если float, должно быть между 0,0 и 1,0 и представлять собой долю параметров для обрезки. Если int, оно представляет собой абсолютное число параметров для обрезки.
  • importance_scores (torch.Tensor) – тензор оценок важности (той же формы, что и параметр модуля), используемый для вычисления маски обрезки. Значения в этом тензоре указывают на важность соответствующих элементов в параметре, подлежащем обрезке. Если не указано или равно None, используется параметр модуля.
Возвращает

изменённую (т.е. обрезанную) версию входного модуля

Тип возвращаемого значения

module (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/2.1/generated/torch.nn.utils.prune.l1_unstructured.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API