Tensorflow:如何手动编辑渐变值

时间:2017-08-06 20:35:20

标签: tensorflow deep-learning gradient-descent

我正在从外部源读取渐变值(即计算在其他地方完成,但我想在" master"网络中积累不同的源),我想只使用{{张量流中的操作。问题是,渐变作为浮点数发送。有没有什么方法可以使用float数组来应用内置apply_gradients()函数的渐变?

在一个非常小的示例/测试案例中,这是我本来想要做的。

Optimizer

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,特别是你可以为外部渐变创建占位符,并在apply_gradients之前通过简单地对它们执行算术来组合它们。

x = tf.Variable( ... )
f = x ** 2
g = tf.gradients(f, x)
my_gradient['x'] = tf.placeholder( ... ) # same size and type as x

g = [(grad + my_gradient[var.name], var) for grad, var in g]

optimizer.apply_gradients(g)

现在在优化步骤中,只需将feed_dict my_gradient ['x']值计算到计算值。

如果他们不改变加班时间,你可以使用tf.constant()代替但是我看不到任何数学情况在ML中有一个恒定(和非零)的渐变。