如何在 TensorFlow 2.0 中组合两个渐变带

Aze*_*ila 3 python neural-network deep-learning tensorflow tensorflow2.0

如何将以下两个渐变胶带合并为一个:

x = tf.Variable(x, dtype=tf.float32)
with tf.GradientTape() as t:
    m, v = DGP.predict(x)
    dm_dx = t.gradient(m, x)
with tf.GradientTape() as t:
    m, v = DGP.predict(x)
    dv_dx = t.gradient(v, x)
Run Code Online (Sandbox Code Playgroud)

这是我更喜欢的,但并不像我写的那样工作:

with tf.GradientTape() as t:
    m, v = DGP.predict(x)
    dm_dx, dv_dx = t.gradient([m,v], x)
Run Code Online (Sandbox Code Playgroud)

jde*_*esa 5

您应该能够执行以下操作:

x = tf.Variable(x, dtype=tf.float32)
with tf.GradientTape(persistent=True) as t:
    m, v = DGP.predict(x)
    dm_dx = t.gradient(m, x)
    dv_dx = t.gradient(v, x)
Run Code Online (Sandbox Code Playgroud)