我计算了渐变(使用compute_gradient())grads_and_vars1和grads_and_vars2。现在我需要添加这两个渐变并存储在grads_and_vars3中并使用grads_and_vars3来应用渐变。
但是grads_and_vars是一个元组。那我该怎么做呢?
答案 0 :(得分:1)
在Python中,tuple
数据类型是不可变的。
因此,如果您必须更新"一个元组的字段,你必须创建一个新的元组并覆盖旧的元组。
此外,如果你必须添加两个元组,你就不能使用+
运算符,因为它会创建一个连接两个元组的新元组。
为了创建一个新元组,它是2元组的元素明智之和,你可以将它们转换为numpy数组,然后求它们并将它转换回tu元组。
由于grads_and_vars是元组列表(渐变,变量),并且您只想添加渐变部分,因此可以循环遍历这些列表(我认为具有相同的长度)并创建(渐变,变量)元组的新列表。我还假设variable
在grads_and_vars1
和grads_and_vars2
中的grads_and_vars1 = [ (1,2), (0,1) , (-1, 1) ]
grads_and_vars2 = [ (1,2), (0,1) , (-1, 1) ]
相同且位置相同。
例如,如果我们有:
grads_and_vars3 = [(grads_and_vars1[idx][0] + grads_and_vars2[idx][0], grads_and_vars1[idx][1]) for idx in range(len(grads_and_vars1))]
我们可以得到:
[(2, 2), (0, 1), (-2, 1)]
这' S:
Measure | MeasureID
NetSales | a