如何在Tensorflow中更新列表中的选定变量?

时间:2018-05-30 14:08:39

标签: python tensorflow

我有一堆变量(形状相同),其中我必须根据self.action_holder的值选择一个进行更新。所以我将这些变量存储在列表 self.weights中。这是我的更新规则

self.update = optimizer.minimize(self.loss, var_list = [tf.gather(self.weights, self.action_holder)])

这会导致错误

No gradients provided for any variable, check your graph for ops that do not support gradients, between variables ['Tensor("GatherV2:0", shape=(2, 10, 10), dtype=float32)'] and loss Tensor("mul:0", dtype=float32).

但是,如果我将更新代码更改为此

self.update = optimizer.minimize(self.loss, var_list = [self.weights[0]])

不会抛出任何错误。但是我一直在self.weights更新第一个重量,这不是我想要的更新。

我在这里很困惑。 Tensorflow中的tf.gather(list, index) = list[index]是真的吗?为什么不在这里工作?我错过了什么吗?

0 个答案:

没有答案