tf.clip_norm

t= [ x 1 x_{1} x1, x 2 x_{2} x2,… x 2 x_{2} x2]

l2= ∑ i = 0 n x i 2 \sqrt{\displaystyle\sum\limits_{i=0}^n x_i^2} i=0nxi2
norm = 2.0

clip_norm = t ∗ n o r m l 2 =\frac{t*norm}{l2} =l2tnorm

import numpy as np

t=np.array([[1, 2, 3, 4, 5]])
l2norm4t = np.linalg.norm(t)
clip_norm = 2.0
transformed_t = t *clip_norm/l2norm4t
print(transformed_t)

[[0.26967996 0.5393599  0.80903983 1.0787199  1.3483998 ]]
some_nums = tf.constant([[1, 2, 3, 4, 5]], dtype=tf.float32)
print(tf.clip_by_norm(some_nums, 2.0).numpy())

[[0.26967996 0.5393599  0.80903983 1.0787199  1.3483998 ]]
posted @ 2022-08-19 22:51  luoganttcc  阅读(8)  评论(0)    收藏  举报