将张量值裁剪为最大 L2 范数。
用法
tf.clip_by_norm(
t, clip_norm, axes=None, name=None
)
参数
-
t
一个Tensor
或IndexedSlices
。这必须是浮点类型。 -
clip_norm
0-D(标量)Tensor
> 0。最大裁剪值,也是浮点数 -
axes
一个 int32 类型的一维(向量)Tensor
,包含用于计算 L2 范数的维度。如果None
(默认),使用所有维度。 -
name
操作的名称(可选)。
返回
-
剪辑的
Tensor
或IndexedSlices
。
抛出
-
ValueError
如果 clip_norm 张量不是 0-D 标量张量。 -
TypeError
如果输入的 dtype 不是浮点或复数类型。
给定一个张量 t
和一个最大剪辑值 clip_norm
,此操作对 t
进行归一化,使其 L2 范数小于或等于 clip_norm
,沿着 axes
中给出的维度。具体来说,在所有维度都用于计算的默认情况下,如果t
的L2范数已经小于或等于clip_norm
,则不修改t
。如果 L2 范数大于 clip_norm
,则此操作返回与 t
具有相同类型和形状的张量,其值设置为:
t * clip_norm / l2norm(t)
在这种情况下,输出张量的 L2 范数是 clip_norm
。
作为另一个示例,如果 t
是矩阵且 axes == [1]
,则输出的每一行的 L2 范数都将小于或等于 clip_norm
。如果改为axes == [0]
,则输出的每一列都将被剪裁。
代码示例:
some_nums = tf.constant([[1, 2, 3, 4, 5]], dtype=tf.float32)
tf.clip_by_norm(some_nums, 2.0).numpy()
array([[0.26967996, 0.5393599 , 0.80903983, 1.0787199 , 1.3483998 ]],
dtype=float32)
此操作通常用于在使用优化器应用渐变之前裁剪渐变。大多数梯度数据是模型不同部分的不同形状张量的集合。因此,这是一个常见的用法:
# Get your gradients after training
loss_value, grads = grad(model, features, labels)
# Apply some clipping
grads = [tf.clip_by_norm(g, norm)
for g in grads]
# Continue on with training
optimizer.apply_gradients(grads)
相关用法
- Python tf.clip_by_value用法及代码示例
- Python tf.clip_by_global_norm用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代码示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.Variable.eval用法及代码示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.layers.conv3d用法及代码示例
- Python tf.compat.v1.strings.length用法及代码示例
- Python tf.cast用法及代码示例
- Python tf.compat.v1.data.Dataset.snapshot用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.reduce用法及代码示例
- Python tf.compat.v1.feature_column.categorical_column_with_vocabulary_file用法及代码示例
- Python tf.compat.v1.data.TextLineDataset.from_tensors用法及代码示例
- Python tf.compat.v1.variable_scope用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.as_numpy_iterator用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代码示例
- Python tf.compat.v1.placeholder用法及代码示例
- Python tf.compat.v1.layers.Conv3D用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.clip_by_norm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。