Ich bin ein tensorflow Graph von folgendem Format schreiben:Tensorflow: Diagramm über die Bewertung abhängig Gebäude
def process_label(label):
return some_operation(label.eval())
Input: X, Label
output,state = NN_Layers()
processed_output = process_data(output)
processed_label = process_label(processed_output, Label)
loss = cross_entropy(processed_output, processed_label)
optimize = GradientDescentOptimizer.minimize(loss)
Session.run(optimize, feed_dict{X:input, Label:label})
Das Problem mit diesem Modell ist, dass ich die Werte der Ausgabe benötigen, um mein Label den Weg zu verarbeiten I Ich will es, damit ich den Verlust berechnen kann. Wenn ich versuche, output.eval (session) hier zu verwenden, wird es nicht funktionieren, weil meine Sitzung den gesamten Graphen ausführt und ich daher nur am Ende aufrufen kann.
Ich frage mich, ob es s a way I can break this graph apart in two and still have the gradient descent work through the network, or if there
s jede andere Möglichkeit, dies zu tun.
Wenn Sie den Verlustwert berechnen und Gradientenabstieg gleichzeitig ausführen möchten, können Sie einfach '_, loss_value = session.run ([optimize, loss], feed_dict = ...)' ausführen. – fwalch
Es tut mir leid, ich war nicht wirklich klar. Um den Verlust zu berechnen, muss ich den Wert processed_label haben, und in process_label() muss ich Berechnungen mit dem Wert der Tensoren durchführen und daher Tensor.eval() verwenden. Ich konnte nicht den gesamten Graphen erstellen, da es auf dieser Auswertung beruht. – Michel