Spec-Zone.ru › PyTorch 2.14

LnStructured

class torch.nn.utils.prune.LnStructured(amount, n, dim=-1) [источник]

Удаляет целые (ещё не удалённые) каналы тензора на основе Ln-нормы.

Параметры:
  • amount (int or float) – количество каналов для удаления. Если float, должно находиться в диапазоне от 0.0 до 1.0 и обозначать долю параметров для удаления. Если int, обозначает абсолютное количество параметров для удаления.
  • n (int, float, inf, -inf, 'fro', 'nuc') – Допустимые значения аргумента p см. в документации к torch.norm().
  • dim (int, optional) – индекс измерения, вдоль которого определяются каналы для удаления. По умолчанию: -1.
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 с удалёнными элементами.

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

Spec-Zone.ru

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