2016-07-24 4 views

Antwort

9

Es stimmt, dass eine Variable an jedem Ort verwendet werden kann, an dem ein Tensor stehen kann, aber die Hauptunterschiede zwischen den beiden sind, dass eine Variable ihren Zustand über mehrere Aufrufe von run() behält und der Wert einer Variablen durch Backpropagation aktualisiert werden kann kann auch gespeichert werden, wiederhergestellt usw. gemäß der Dokumentation).

Diese Unterschiede bedeuten, dass Sie Ihr Modell einer Variablen als Vertreter trainierbar Parameter denken sollen (zum Beispiel der Gewichte und Voreingenommenheit eines neuronalen Netzes), während Sie ein Tensor als die die Daten denken können in zugeführt werden Ihr Modell und die Zwischenrepräsentationen dieser Daten beim Durchlaufen Ihres Modells.

+0

Wenn eine Variable in einem Modell zusammen mit einem 'Optimizer' verwendet wird, werden die Gewichte in dieser' Variablen' immer über Backprop aktualisiert? Sollen die von mir erstellten 'Variablen'-Objekte genau mit meinen trainierbaren Parametern übereinstimmen, oder gibt es Parameter, bei denen ich keine Variablen sein möchte oder umgekehrt? – juesato

+1

Ja, soweit ich es verstehe, wird jede Variable, die trainierbar hat = True set (der Standardwert), während des Backprop aktualisiert, vorausgesetzt natürlich, dass der Gradient sich auf diese bestimmte Variable ausbreiten kann (früher im Datenfluss) zur Verlustoperation). Abhängig davon, was Sie als Parameter definieren, stelle ich fest, dass es einige gibt, die während des Trainings nicht aktualisiert werden sollen, z. B. Sequenzlängen, maximale Epochen, Lernrate. Dies können Python-Variablen sein, die Tensorflow bei Bedarf automatisch konvertiert oder sie können konstante Tensoren sein. –

Verwandte Themen