当将来自多个网络的激活组合成一个 objective 时,tensorflow 中的自动微分是否起作用?

Does auto-differentiation in tensorflow work when combining activations from multiple nets into one objective?

我是 tensorflow 的新手,正在尝试弄清楚 tensorflow 中的自动微分功能是否可以解决我的问题。 所以我有两个网络,每个网络输出一个潜在向量。因此,假设我的网络 A 输出潜在向量 -La(Hxr) - 其中 (H,r) 表示输出潜在向量 La 的维度。类似地,网络 B 输出 Lb(Wxr) 。因此,我的 objective 函数将两个潜在变量都作为输入并将它们组合在一起,如 (La.Lb') 其中 (.) 是点积,(') 表示转置。我将使用交叉熵优化此 objective 函数。

现在我的问题是tensor-flow auto-diff是否能够正确计算梯度并反向传播?这不是一个简单的案例。网络 A 应该只从梯度 w.r.t 更新。 La 和 net B 应该只用计算出的梯度更新 w.r.t Lb。那么 tensorflow 是否足够聪明来解决这个问题?有没有办法验证这一点?

谢谢!

TensorFlow 支持自动微分您可以使用它定义的任何类型的计算图。我使用 TensorFlow 组合来自多个网络的预测,以使用不同的损失函数计算损失。所以,tensorflow 足够聪明,可以解决这个问题,它会正确计算梯度并反向传播它。