mindspore.nn.ClipByNorm
- class mindspore.nn.ClipByNorm(axis=None)[source]
Clips tensor values to a maximum \(L_2\)-norm.
The output of this layer remains the same if the \(L_2\)-norm of the input tensor is not greater than the argument clip_norm. Otherwise the tensor will be normalized as:
\[\text{output}(X) = \frac{\text{clip_norm} * X}{L_2(X)},\]where \(L_2(X)\) is the \(L_2\)-norm of \(X\).
- Parameters
axis (Union[None, int, tuple(int)]) – Compute the L2-norm along the Specific dimension. Default: None, all dimensions to calculate.
- Inputs:
input (Tensor) - Tensor of shape N-D. The type must be float32 or float16.
clip_norm (Tensor) - A scalar Tensor of shape \(()\) or \((1)\). Or a tensor shape can be broadcast to input shape.
- Outputs:
Tensor, clipped tensor with the same shape as the input, whose type is float32.
- Raises
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> net = nn.ClipByNorm() >>> input = Tensor(np.random.randint(0, 10, [4, 16]), mindspore.float32) >>> clip_norm = Tensor(np.array([100]).astype(np.float32)) >>> output = net(input, clip_norm) >>> print(output.shape) (4, 16)