前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow学习笔记(十四):tensorlfow操作gradient

tensorflow学习笔记(十四):tensorlfow操作gradient

作者头像
ke1th
发布2019-05-26 12:29:23
6360
发布2019-05-26 12:29:23
举报
文章被收录于专栏:漫漫深度学习路

tensorflow中操作gradient-clip

在训练深度神经网络的时候,我们经常会碰到梯度消失梯度爆炸问题,scientists提出了很多方法来解决这些问题,本篇就介绍一下如何在tensorflow中使用clip来address这些问题

代码语言:javascript
复制
train_op = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(loss)

在调用minimize方法的时候,底层实际干了两件事:

  • 计算所有 trainable variables 梯度
  • apply them to variables

随后, 在我们 sess.run(train_op) 的时候, 会对 variables 进行更新

clip

那我们如果想处理一下计算完的 gradients ,那该怎么办呢? 官方给出了以下步骤

  1. Compute the gradients with compute_gradients(). 计算梯度
  2. Process the gradients as you wish. 处理梯度
  3. Apply the processed gradients with apply_gradients(). apply处理后的梯度给variables

这样,我们以后在train的时候就会使用 processed gradient去更新 variable 框架:

代码语言:javascript
复制
# Create an optimizer.optimizer必须和variable在一个设备上声明
opt = GradientDescentOptimizer(learning_rate=0.1)

# Compute the gradients for a list of variables.
grads_and_vars = opt.compute_gradients(loss, <list of variables>)

# grads_and_vars is a list of tuples (gradient, variable).  Do whatever you
# need to the 'gradient' part, for example cap them, etc.
capped_grads_and_vars = [(MyCapper(gv[0]), gv[1]) for gv in grads_and_vars]

# Ask the optimizer to apply the capped gradients.
opt.apply_gradients(capped_grads_and_vars)

例子:

代码语言:javascript
复制
#return a list of trainable variable in you model
params = tf.trainable_variables()

#create an optimizer
opt = tf.train.GradientDescentOptimizer(self.learning_rate)

#compute gradients for params
gradients = tf.gradients(loss, params)

#process gradients
clipped_gradients, norm = tf.clip_by_global_norm(gradients,max_gradient_norm)

train_op = opt.apply_gradients(zip(clipped_gradients, params)))

这时, sess.run(train_op) 就可以进行训练了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年11月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tensorflow中操作gradient-clip
    • clip
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档