阅读(7.2k) 书签 (0)

将TensorFlow张量值剪辑到最大 L2-norm

2018-09-11 16:44 更新

tf.clip_by_norm

clip_by_norm ( 
    t , 
    clip_norm , 
    axes = None , 
    name = None
 )

定义在:tensorflow/python/ops/clip_ops.py.

参见指南:Training函数>梯度剪辑

将张量值剪辑到最大 L2-norm.

给定一个张量 t 和一个最大的剪辑值 clip_norm,此操作使 t 的 L2-norm 小于或等于 clip_norm,沿轴给定的维度.具体地说, 在所有维度都用于计算的默认情况下, 如果 t 的 L2-norm 已小于或等于 clip_norm,则 t 不会被修改.如果 L2-norm 大于 clip_norm,则此操作将返回与 t 相同的类型和形状的张量,其值设置为:

t * clip_norm / l2norm(t)

在这种情况下,输出张量的 L2-norm 为 clip_norm.

作为另一个例子, 如果 t 是矩阵和轴 = = [1], 如果坐标轴 == [0], 则输出的每一列将被修剪.
此操作通常用于在使用优化程序之前对其进行梯度剪辑.

ARGS:

  • t:张量.
  • clip_norm:一个0维 (标量) 张量 > 0,是最大剪辑值.
  • axes:包含用于计算 L2-norm 的维度的 int32 型的1维 (矢量) 张量.如果没有 (默认值), 则使用所有维度.
  • name:操作的名称(可选).

返回:

一个剪辑张量.