Ich habe eine Kosten, die von zwei Variablen a
und b
abhängt.
Ich möchte:Tensorflow control_dependencies arbeitet nicht mit Liste
- berechnen beide Verläufe der Kosten am aktuellen Punkt,
- Aktualisierung der Verlust w.r.t. die erste Liste der Variablen (
a
) - Update der Verlust w.r.t. die zweite Liste der Variablen (
b
).
In dieser Reihenfolge.
Um dies zu tun, habe ich versucht, so etwas wie dieses:
EDIT: Nach @Yaroslav Bulatovs Antwort ich folgendes versucht:
opt=tf.train.GradientDescentOptimizer(0.001)
grad_cost_wrt_a=opt.compute_gradients(cost,[a])
grad_cost_wrt_b=opt.compute_gradients(cost,[b])
with tf.control_dependencies(grad_cost_wrt_a[0]):
with tf.control_dependencies(grad_cost_wrt_b[0]):
update_wrt_a=opt.apply_gradients(grad_cost_wrt_a)
with tf.control_dependencies([update_wrt_a]):
update_wrt_b=opt.apply_gradients(grad_cost_wrt_b)
fragen sich, ob dies das Richtige tut? Wenn a und b eine Liste von Variablen sind.
der Lage sein, dann tun: Zuerst
sess.run([update_wrt_a,update_wrt_b],feed_dict={x: x_input, y: y_input})
das ich nicht funktioniert: eine Liste in einen Tensor oder Betrieb nicht konvertieren kann, aber control_dependencies soll eine Liste von Tensoren ... empfangen
Dann Bonus Frage brauche ich wirklich all diese control_dependencies?
bekannt haben sollte! Entschuldigung, ich habe es verpasst! Vielen Dank ! – jean
Wie geht man eigentlich mit dem Fall um, wo a und b eine Liste von Variablen sind? – jean
Ich habe meine Frage bearbeitet? Wenn ich nur eine Steuerabhängigkeit von den ersten Gradienten verwende, funktioniert das Variablentupel so, wie ich es möchte? – jean