Tensorflow-使用相同的梯度多次更新权重

时间:2019-07-16 21:11:16

标签: python tensorflow gradient-descent

使用梯度下降的训练网络通常包括在一个小批量生产中向前,向后和更新遍历,然后移至下一个。 我要运行此过程的修改版:在运行初始正向和反向传递(获取损耗和渐变)并进行初始更新后,我想正向运行并再次更新,直到满足停止条件为止。

正常训练算法如下:

    for mb in get_minibatches():
      loss = forward(mb)
      gradients = backwards()
      weights.update(gradients, step)

我需要什么(请注意,梯度仅计算一次):

    for mb in get_minibatches():
      loss = forward(mb)
      gradients = backwards()
      weights.update(gradients, step)

      while (new_loss = forward(mb)) > loss:
        step = step / 2 # actual formula is different
        weights.update(gradients, step)

如何执行我的自定义前进和更新步骤顺序?

0 个答案:

没有答案