Ich habe Tensorflow mit dem l-bfgs Optimizer von openopt verwendet. Es war ziemlich einfach Callbacks zu erstellen, damit Tensorflow Gradienten und Verlustbewertungen für die L-Bfgs berechnen kann. Allerdings habe ich Probleme herauszufinden, wie man stochastische Elemente wie Dropout in den Trainingsprozess einbaut.Verwendung externer Optimierer mit Tensorflow und stochastischen Netzwerkelementen
Während der Leitungssuche führt l-bfgs mehrere Auswertungen der Verlustfunktion durch, die im selben Netzwerk wie die vorherige Gradientenauswertung arbeiten müssen. Es scheint jedoch, dass für jede Auswertung der tf.nn.dropout-Funktion eine neue Gruppe von Dropouts erzeugt wird. Ich suche nach einer Möglichkeit, das Dropout über mehrere Auswertungen der Verlustfunktion zu fixieren und dann zu erlauben, dass es zwischen den Gradientenschritten der I-Bfgs wechselt. Ich gehe davon aus, dass dies etwas mit den Kontrollfluss-Ops in Tensorflow zu tun hat, aber es gibt nicht wirklich ein gutes Tutorial, wie man diese verwendet und sie sind ein bisschen rätselhaft für mich.
Danke für Ihre Hilfe!