Wie initialisieren Sie die GEWICHTE in PyTorch?
Wie Sie initialisiert die GEWICHTE und biases (zum Beispiel, mit dem Er oder Xavier-Initialisierung) in einem Netzwerk in PyTorch?
InformationsquelleAutor Fábio Perez | 2018-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Single-layer
Zur Initialisierung der GEWICHTE einer einzigen Schicht, verwenden Sie eine Funktion aus
Fackel.nn.init
. Zum Beispiel:Alternativ können Sie die Parameter ändern, indem Sie sich schriftlich an
conv1.weight.data
(das ist einFackel.Tensor
). Beispiel:Das gleiche gilt für Vorurteile:
nn.Sequential
oder benutzerdefiniertenn.Module
Pass eine Funktion zur Initialisierung, zu
Fackel.nn.- Modul.apply
. Es initialisiert die GEWICHTE in der gesamtennn.Module
rekursiv.Beispiel:
reset_parameters
Methode in den source-code von vielen Bausteinen. Soll ich überschreiben Sie die Methode für Gewicht-Initialisierung?was wenn ich eine Normale Verteilung mit einigen Mittelwert und std?
Was ist die Standard-Initialisierung, wenn ich die nicht angeben?
InformationsquelleAutor Fábio Perez
Wir vergleichen verschiedene Modus-Gewicht-Initialisierung mit der gleichen neuronalen Netzwerk(NN -) Architektur.
Alle Nullen oder Einsen
Wenn Sie Folgen dem Prinzip des Occam ' s razor, könnte man denken das einstellen der GEWICHTE auf 0 oder 1 wäre die beste Lösung. Dies ist nicht der Fall.
Mit jedem Gewicht die gleiche, alle Neuronen in jeder Schicht produzieren die gleiche Ausgabe. Dies macht es schwer zu entscheiden, welche GEWICHTE zu justieren.
Einheitliche Initialisierung
Einen gleichmäßige Verteilung hat die gleiche Wahrscheinlichkeit, Kommissionierung jede Zahl aus einem Satz von zahlen.
Lassen Sie uns sehen, wie gut das neuronale Netz die Züge mit einem einheitlichen Gewicht Initialisierung, wo
low=0.0
undhigh=1.0
.Unten werden wir sehen, einen anderen Weg (außer in der Netto-Klasse code), um die Initialisierung der GEWICHTE eines Netzes. Zu definieren, die GEWICHTE außerhalb des Modells-definition, können wir:
Allgemeine Regel für die Einstellung der GEWICHTE
Die Allgemeine Regel für die Einstellung der GEWICHTE in einem neuronalen Netzwerk ist, um Sie von den nahe bei null, ohne dabei zu klein.
unten vergleichen wir die Leistung des NN, GEWICHTE Initialisierung mit Gleichverteilung [-0.5,0.5) im Vergleich zu dessen Gewicht wird initialisiert Regel
Normalverteilung, die zum initialisieren der GEWICHTE
unten zeigen wir die performance der beiden NN man initialisiert uniform-Verteilung und die andere über normal-Verteilung
InformationsquelleAutor ashunigion
InformationsquelleAutor Duane
Sorry für so spät, ich hoffe, meine Antwort hilft.
Initialisieren Sie die GEWICHTE mit einem
normal distribution
verwenden:Oder ein
constant distribution
schreiben:Oder für die Verwendung eines
uniform distribution
:Können Sie prüfen, andere Methoden zu initialisieren Tensoren hier
InformationsquelleAutor Luca Di Liello