码迷,mamicode.com
首页 > 其他好文 > 详细

tf.clip_by_global_norm

时间:2018-05-04 23:22:34      阅读:785      评论:0      收藏:0      [点我收藏+]

标签:截取   参数   pre   意义   情况   更新   sum   梯度   oba   

首先明白这个事干嘛的,在我们做求导的时候,会遇到一种情况,求导函数突然变得特别陡峭,是不是意味着下一步的进行会远远高于正常值,这个函数的意义在于,在突然变得陡峭的求导函数中,加上一些判定,如果过于陡峭,就适当减小求导步伐。

 

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() 要慢,因为在截取之前所有的参数都要准备好。

tf.clip_by_global_norm

标签:截取   参数   pre   意义   情况   更新   sum   梯度   oba   

原文地址:https://www.cnblogs.com/baochen/p/8992841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!