tf.clip_by_global_norm


首先明白這個事干嘛的,在我們做求導的時候,會遇到一種情況,求導函數突然變得特別陡峭,是不是意味着下一步的進行會遠遠高於正常值,這個函數的意義在於,在突然變得陡峭的求導函數中,加上一些判定,如果過於陡峭,就適當減小求導步伐。

 

tf.clip_by_global_norm(t_list, clip_norm, use_norm=None, name=None)

 

通過權重梯度的總和的比率來截取多個張量的值。 
t_list 是梯度張量, clip_norm 是截取的比率, 這個函數返回截取過的梯度張量和一個所有張量的全局范數。

 

t_list[i] 的更新公式如下:

t_list[i] * clip_norm / max(global_norm, clip_norm)

其中global_norm = sqrt(sum([l2norm(t)**2 for t in t_list])) 
global_norm 是所有梯度的平方和,如果 clip_norm > global_norm ,就不進行截取。 
但是這個函數的速度比clip_by_norm() 要慢,因為在截取之前所有的參數都要准備好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM