Freigeben über


Dropout

Dropout-Funktion.

Dropout (x)

Parameter

  • x: die Eingabe zum Anwenden der Dropoutfunktion auf

Hinweis: Die Dropoutrate ist kein Parameter für diese Funktion, sondern stattdessen im SGD Abschnitt angegeben.

Rückgabewert

Dropout() gibt das Ergebnis des Dropdownvorgangs zurück, der auf die Eingabe angewendet wird. Das Ergebnis weist die gleichen Tensordimensionen wie die Eingabe auf.

BESCHREIBUNG

Der Dropout() Vorgang wählt zufällig Elemente der Eingabe mit einer bestimmten Wahrscheinlichkeit aus, die als Dropoutrate bezeichnet wird, und legt sie auf 0 fest. Dies wurde gezeigt, um die Allgemeinheit von Modellen zu verbessern.

In der Implementierung CNTK werden die verbleibenden Werte, die nicht auf 0 festgelegt sind, stattdessen mit (1 / (1 - Dropoutrate)multipliziert. Auf diese Weise sind die mit Dropout gelernten Modellparameter direkt anwendbar. (Wenn dies nicht getan wurde, muss der Benutzer sie manuell skalieren, bevor er inference.)

Um Das Dropout in Ihrer Schulung zu aktivieren, müssen Sie dem Abschnitt auch einen Parameter dropoutRate hinzufügen, um die SGD Dropoutrate zu definieren. Dies erfolgt in einem SGD Abschnitt anstelle eines Parameters Dropout() selbst, um eine Schulung ohne Abbruch zu starten und es dann nach einigen Epochen zu aktivieren, was ein gängiges Szenario ist. dropoutRate Dies wird als Vektor angegeben, wobei sich jeder Wert für eine bestimmte Epoche befindet.

Beim Ausführen von Schlussfolgerungen übergibt der Dropout() Vorgang seine Eingabe unmodifiziert (es ist kein Op).

Beispiel

Im Folgenden handelt es sich um ein einfaches konvolutionales Netzwerk mit einer Dropoutschicht am Ende:

features = Input{...}
c = ConvolutionalLayer {32, (5:5), activation=ReLU} (features)
p = MaxPoolingLayer {(3:3), stride = (2:2)} (c)
h = DenseLayer {64, activation = ReLU} (p)
d = Dropout (h)
z = LinearLayer {10} (d)

Darüber hinaus benötigen Sie einen entsprechenden Eintrag im SGD Abschnitt. Im folgenden Beispiel wird definiert, dass für die ersten 3 Epochen kein Dropout verwendet wird, und dann mit einer Dropoutrate von 50 % fortzufahren. In diesem Beispiel wird die Syntax des Sterns (*) verwendet, um Wiederholungen zu kennzeichnen:

SGD = {
    ...
    dropoutRate = 0*3:0.5
    ...
}