Da Tensor-Berechnungen aus Graphen bestehen, ist es besser, die beiden in Form von Graphen zu interpretieren.
Nehmen wir zum Beispiel die einfache lineare Regression
WX+B=Y
wo W
und B
stehen für die Gewichte und Verzerrungen und X
für die Eingaben Y
der Beobachtungen und für die Ausgaben der Beobachtungen.
Offensichtlich X
und Y
sind von gleicher Natur (Manifestvariablen), die sich von denen von W
und B
(latente Variablen) unterscheiden. X
und Y
sind Werte der Proben (Beobachtungen) und benötigen daher einen zu füllenden Platz , während W
und B
sind die Gewichte und die Abweichung Variablen (die vorherigen Werte wirken sich auf letztere aus) in der Grafik, die unter Verwendung von verschiedenen X
und Y
Paaren trainiert werden sollten . Wir platzieren verschiedene Stichproben in den Platzhaltern , um die Variablen zu trainieren .
Wir müssen nur die Variablen (an Prüfpunkten) speichern oder wiederherstellen , um das Diagramm mit dem Code zu speichern oder neu zu erstellen.
Platzhalter sind meist Inhaber für die verschiedenen Datensätze (z. B. Trainingsdaten oder Testdaten). Im Trainingsprozess werden jedoch Variablen für die spezifischen Aufgaben trainiert, dh um das Ergebnis der Eingabe vorherzusagen oder die Eingaben den gewünschten Beschriftungen zuzuordnen. Sie bleiben gleich, bis Sie das Modell mit verschiedenen oder denselben Beispielen neu trainieren oder optimieren , um die Platzhalter häufig durch das Diktat zu füllen . Zum Beispiel:
session.run(a_graph, dict = {a_placeholder_name : sample_values})
Platzhalter werden auch als Parameter zum Festlegen von Modellen übergeben.
Wenn Sie während des Trainings die Platzhalter (Hinzufügen, Löschen, Ändern der Form usw.) eines Modells ändern, können Sie den Prüfpunkt weiterhin ohne weitere Änderungen neu laden. Wenn jedoch die Variablen eines gespeicherten Modells geändert werden, sollten Sie den Prüfpunkt entsprechend anpassen, um ihn neu zu laden und das Training fortzusetzen (alle im Diagramm definierten Variablen sollten im Prüfpunkt verfügbar sein).
Zusammenfassend lässt sich sagen, dass Sie, wenn die Werte aus den Stichproben stammen (Beobachtungen, die Sie bereits haben), sicher einen Platzhalter erstellen, um sie zu halten. Wenn Sie einen zu trainierenden Parameter benötigen, nutzen Sie eine Variable (einfach ausgedrückt, stellen Sie die Variablen für die gewünschten Werte ein TF automatisch verwenden).
In einigen interessanten Modellen, wie einem Stilübertragungsmodell, werden die Eingabepixel optimiert und die normalerweise als Modellvariablen bezeichneten Variablen werden festgelegt. Dann sollten wir die Eingabe (normalerweise zufällig initialisiert) als Variable vornehmen, wie in diesem Link implementiert.
Weitere Informationen finden Sie in diesem einfachen und anschaulichen Dokument .
Variable
s, aber nicht in Bezug aufplaceholder
s (deren Werte immer angegeben werden müssen).