使用Tensorflow怎么实现梯度异步更新

  介绍

使用Tensorflow怎么实现梯度异步更新?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>先计算梯度:

#,模型部分   时间=Optimizer  tf.train.GradientDescentOptimizer (1)   时间=gradient  Optimizer.compute_gradients(损失),,#,每次计算所有变量的梯度   时间=grads_holder  [(tf.placeholder (tf.float32,,形状=g.get_shape ()),, v), for  (g, v),拷贝梯度)#,将每次计算的梯度保存   时间=optm  Optimizer.apply_gradients (grads_holder), #,进行梯度更新      #,初始化部分   时间=sess  tf.Session ()   时间=init  tf.global_variables_initializer ()   sess.run (init)      #,实际训练部分   时间=grads [],,,,,,,,, #,定义一个空的列表用于存储每次计算的梯度   for 小姐:范围(batchsize):拷贝,#,batchsize设置在这里   x_i 才能=,…,,,,,,,#,输入   y_real 才能=,…,,,,,,#,标签   时间=grad_i 才能;sess.run(梯度,,feed_dict={x_i,输入:,输出:,y_real}), #梯度计算   grads.append才能(grad_i),, #,梯度存储   #,定义一个空的字典用于存储,batchsize中所有梯度的和   grads_sum =, {},,,,,   #,将网络中每个需要更新梯度的变量都遍历一遍,,   for 小姐:范围(len (grads_holder)):拷贝,   时间=k 才能;grads_holder[我][0],#,得到该变量名   #,才能将该变量名下的所有梯度求和,这里也可以求平均,求平均只需要除以batchsize   grads_sum才能[k],=,总和([g[我][0],for  g 拷贝毕业生]),   #,完成梯度更新   sess.run (optm feed_dict=grads_sum)

看完上述内容,你们掌握使用Tensorflow怎么实现梯度异步更新的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

使用Tensorflow怎么实现梯度异步更新