当前位置:  开发笔记 > 人工智能 > 正文

在优化器期间保持变量不变

如何解决《在优化器期间保持变量不变》经验,为你挑选了1个好方法。

我有一个TensorFlow计算图,表示损失张量L取决于2 tf.Variables,A和B.

我想在变量A(A + = L wrt A的梯度)上运行梯度上升,同时保持B固定,反之亦然 - 在B上运行梯度上升(B + = L wrt B的梯度),同时保持A固定.我该怎么做呢?



1> Rafał Józefo..:

tf.stop_gradient(tensor)可能就是你要找的东西.对于梯度计算目的,张量将被视为常数.您可以创建两个损失,将不同的部分视为常量.

另一个选择(通常更好)是创建2个优化器,但只显式优化变量子集,例如

train_a = tf.train.GradientDescentOptimizer(0.1).minimize(loss_a, var_list=[A])
train_b = tf.train.GradientDescentOptimizer(0.1).minimize(loss_b, var_list=[B])

并且您可以在更新之间进行迭代.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有