TensorFlow - 使用动量优化器时,为多个目标目标组合渐变?

时间:2017-04-30 22:52:50

标签: optimization tensorflow gradient-descent momentum

如果我使用的是使用动量的优化器(例如AdamOptimizer)并且我有一个图表,该图表在最后分割,导致两个值,我试图同时最小化,我可以使用compute_gradients两次尝试最小化每个值。这产生两组独立的梯度。如果我只是将两个列表合并为一个长列表并在整个列表中使用apply_gradients,那么动量方面会发生什么?相同的变量可以用两个相反的值更新两次。 TensorFlow优化器是否考虑到了这一点并将动量放在适当的中间位置?或者优化器是否将两个单独的梯度作为两个单独的梯度更新调用来影响动量(可能导致问题,因为人们可能会因为它总是被称为最后一个而受到青睐)?如果是这种情况,我应该如何在应用之前手动组合渐变?

1 个答案:

答案 0 :(得分:1)

您可以使用“联合损失”来训练网络。

假设您有两个张量:loss1和loss2,因此您可以将它们加起来并在合并损失上运行优化器,如Adam(loss1 + loss2)。