將張量值裁剪為最大 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。