Tensorflow:使用TF优化器在每个梯度步骤之后修改损失函数评估中使用的数据点

时间:2018-12-29 14:58:10

标签: tensorflow gradient-descent mle stochastic-process log-likelihood

典型的tf优化器流程如下:

# Create an optimizer.
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)

如何修改此流程,以便在每个优化器步骤之后使用不同的数据点计算损失函数,并根据更新的参数来计算这些数据点?

说我有一个随机过程,它具有一定的参数化,并且通过梯度下降来学习参数值。更新参数值后,我必须重新采样此过程中的点并评估这些点的可能性(而不是我在上一步中使用的点)。我可以轻松地将其合并到典型的tf优化器中吗?从概念上讲,它类似于批次梯度下降,但是每个批次的数据点都是通过梯度下降循环生成的,其方式取决于上一次迭代的参数值。

0 个答案:

没有答案