mindspore.nn.L1Regularizer

class mindspore.nn.L1Regularizer(scale)[源代码]

对权重计算L1正则化。

L1正则化可导致稀疏权重。

\[\text{loss}=\lambda * \text{reduce_sum}(\text{abs}(\omega))\]

\(\lambda\) 代表 scale

Note

正则化因子应为大于0。

参数:

  • scale (int, float) - L1正则化因子,其值大于0。

输入:

  • weights (Tensor) - L1Regularizer的输入,任意维度的Tensor,数据类型为float16或float32。

输出:

Tensor,其shape为(),默认数据类型为mindspore.float32,如果权重的数据类型精度更高,则以权重的数据类型作为输出数据类型。

异常:

  • TypeError - scale 既不是int也不是float。

  • ValueError - scale 不大于0。

  • ValueError - scale 是math.inf或math.nan。

支持平台:

Ascend GPU CPU

样例:

>>> scale = 0.5
>>> net = nn.L1Regularizer(scale)
>>> weights = Tensor(np.array([[1.0, -2.0], [-3.0, 4.0]]).astype(np.float32))
>>> output = net(weights)
>>> print(output.asnumpy())
5.0