快捷方式

torch.nn.utils.prune.l1_unstructured

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

通过移除 L1 范数最低的单元来剪枝张量。

通过移除 L1 范数最低的指定 amount 数量的(当前未被剪枝的)单元,对 module 中名为 name 的参数对应的张量进行剪枝。该方法会原地修改模块(并返回修改后的模块),具体操作为:

  1. 添加一个名为 name+'_mask' 的命名缓冲区,对应于剪枝方法应用到参数 name 的二进制掩码。

  2. 将参数 name 替换为其剪枝后的版本,同时将原始(未剪枝的)参数存储在一个名为 name+'_orig' 的新参数中。

参数
  • module (nn.Module) – 包含待剪枝张量的模块

  • name (str) – module 中将进行剪枝操作的参数名称。

  • amount (intfloat) – 待剪枝参数的数量。如果为 float,则应在 0.0 到 1.0 之间,表示待剪枝参数的比例。如果为 int,则表示待剪枝参数的绝对数量。

  • importance_scores (torch.Tensor) – 用于计算剪枝掩码的重要性分数张量(与模块参数形状相同)。此张量中的值表示待剪枝参数中对应元素的重要性。如果未指定或为 None,则使用模块参数本身。

返回

输入模块的修改(即已剪枝)版本

返回类型

模块 (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'])

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获取问题解答

查看资源