LnStructured
-
class torch.nn.utils.prune.LnStructured(amount, n, dim=-1)[источник] -
Удаляет целые (ещё не удалённые) каналы тензора на основе L
n-нормы.- Параметры:
-
-
amount (int or float) – количество каналов для удаления. Если
float, должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю параметров для удаления. Еслиint, обозначает абсолютное количество параметров для удаления. -
n (int, float, inf, -inf, 'fro', 'nuc') – Допустимые значения аргумента
pсм. в документации кtorch.norm(). - dim (int, optional) – индекс измерения, вдоль которого определяются каналы для удаления. По умолчанию: -1.
-
amount (int or float) – количество каналов для удаления. Если
-
classmethod apply(module, name, amount, n, dim, importance_scores=None)[источник] -
Добавляет удаление на лету и репараметризацию тензора.
Добавляет предварительный хук forward, который включает удаление на лету и репараметризацию тензора через исходный тензор и маску удаления.
- Параметры:
-
- module (nn.Module) – модуль, содержащий тензор для удаления
-
name (str) – имя параметра в
module, к которому будет применено удаление. -
amount (int or float) – количество параметров для удаления. Если
float, должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю параметров для удаления. Еслиint, обозначает абсолютное количество параметров для удаления. -
n (int, float, inf, -inf, 'fro', 'nuc') – Допустимые значения аргумента
pсм. в документации кtorch.norm(). - dim (int) – индекс измерения, вдоль которого определяются каналы для удаления.
- importance_scores (torch.Tensor) – тензор оценок важности (той же формы, что и параметр модуля), используемый для вычисления маски удаления. Значения в этом тензоре указывают важность соответствующих элементов удаляемого параметра. Если значение не указано или равно None, вместо него будет использован параметр модуля.
-
apply_mask(module)[источник] -
Выполняет умножение удаляемого параметра на созданную маску.
Получает маску и исходный тензор из модуля и возвращает версию тензора с удалёнными элементами.
- Параметры:
-
module (nn.Module) – модуль, содержащий тензор для удаления
- Возвращает:
-
версию входного тензора с удалёнными элементами
- Тип возвращаемого значения:
-
pruned_tensor (torch.Tensor)
-
compute_mask(t, default_mask)[источник] -
Вычисляет и возвращает маску для входного тензора
t.На основе исходной
default_mask(которая должна быть маской из единиц, если тензор ещё не подвергался удалению) создаёт маску, применяемую поверхdefault_mask, обнуляя каналы вдоль указанного измерения с наименьшей Ln-нормой.- Параметры:
-
- t (torch.Tensor) – тензор, представляющий параметр для удаления
-
default_mask (torch.Tensor) – исходная маска предыдущих итераций удаления, которую необходимо сохранить после применения новой маски. Имеет те же размерности, что и
t.
- Возвращает:
-
маску для применения к
t, с теми же размерностями, что иt - Тип возвращаемого значения:
-
mask (torch.Tensor)
- Вызывает:
-
IndexError – если
self.dim >= len(t.shape)
-
prune(t, default_mask=None, importance_scores=None)[источник] -
Вычисляет и возвращает версию входного тензора
tс удалёнными элементами.В соответствии с правилом удаления, указанным в
compute_mask().- Параметры:
-
-
t (torch.Tensor) – тензор для удаления (с теми же размерностями, что и
default_mask). -
importance_scores (torch.Tensor) – тензор оценок важности (той же формы, что и
t), используемый для вычисления маски удаленияt. Значения в этом тензоре указывают важность соответствующих элементовt, подвергаемого удалению. Если значение не указано или равно None, вместо него будет использован тензорt. - default_mask (torch.Tensor, optional) – маска предыдущей итерации удаления, если она есть. Учитывается при определении части тензора, к которой следует применить удаление. Если значение равно None, по умолчанию используется маска из единиц.
-
t (torch.Tensor) – тензор для удаления (с теми же размерностями, что и
- Возвращает:
-
версию тензора
tс удалёнными элементами.
-
remove(module)[источник] -
Удаляет репараметризацию удаления из модуля.
Параметр
name, подвергнутый удалению, остаётся удалённым навсегда, а параметрname+'_orig'удаляется из списка параметров. Аналогично, буферname+'_mask'удаляется из списка буферов.Примечание
Само удаление НЕ отменяется и НЕ обращается!
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.utils.prune.LnStructured.html