mindspore.ops.clip_by_global_norm
- mindspore.ops.clip_by_global_norm(x, clip_norm=1.0, use_norm=None)[源代码]
通过权重梯度总和的比率来裁剪多个tensor的值。
说明
在半自动并行模式或自动并行模式下,如果输入是梯度,那么将会自动汇聚所有设备上的梯度的平方和。
- 参数:
x (Union(tuple[Tensor], list[Tensor])) - 要被剪裁的数据。
clip_norm (Union(float, int)) - 裁剪比率,应大于0。默认
1.0
。use_norm (None) - 全局范数。目前只支持None,默认
None
。
- 返回:
多个tensor组成的tuple。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> x1 = mindspore.tensor([[2., 3.], [1., 2.]], dtype=mindspore.float32) >>> x2 = mindspore.tensor([[1., 4.], [3., 1.]], dtype=mindspore.float32) >>> input_x = (x1, x2) >>> out = mindspore.ops.clip_by_global_norm(input_x, 1.0) >>> print(out) (Tensor(shape=[2, 2], dtype=Float32, value= [[ 2.98142403e-01, 4.47213590e-01], [ 1.49071202e-01, 2.98142403e-01]]), Tensor(shape=[2, 2], dtype=Float32, value= [[ 1.49071202e-01, 5.96284807e-01], [ 4.47213590e-01, 1.49071202e-01]]))