2016-08-10 5 views
0

Ich habe einen Fall, in dem ich mein Netz spaltete und rückseitige Stütze herausfinden muss.Wie in einem gespaltenen Netz rückwärts-propagieren

Das Netz geht so:

      /-- one-type-of-net-with-its-own-loss 
common_couple_of_layers-- 
         \-- another-type-of-net-with-its-own-loss 
  • Würde ich nur add_to_collection berechnen Steigungen und aktualisieren?
  • Oder muss ich irgendwie an diesem Punkt, wo die beiden Netze spalten (d. H. Wo die Gradienten "wiedervereinigen")?
  • Oder normalisieren?
  • Oder ...?
  • Oder ist Tensorflow dies automatisch beim Hinzufügen zu der Verlust-Sammlung?

Thx

Antwort

1

Wenn Sie die „Verluste Sammlung“ verwenden (zB über tf.contrib.losses.add_loss() oder tf.add_to_collection(tf.GraphKeys.LOSSES, ...), können Sie tf.contrib.losses.get_total_loss() verwenden einen einzigen Verlustwert zu erhalten, die zu einem Standard-TensorFlow weitergegeben werden können tf.train.Optimizer Unterklasse. TensorFlow leitet die entsprechende Back-Prop-Berechnung für Ihr geteiltes Netzwerk ab.

+0

Thx! Außerdem würde es Ihnen etwas ausmachen, Ihre Antwort auch unter http://stackoverflow.com/questions/38783726/how-to-handle-gradients-when- zu veröffentlichen. Training-Zwei-Sub-Graphen-simultan? Könnte die Bounty :) – friesel