Delen via


Vervolgkeuzelijst

Vervolgkeuzelijst, functie.

Dropout (x)

Parameters

  • x: de invoer voor het toepassen van de vervolgkeuzelijst op

Opmerking: de dropout rate is geen parameter voor deze functie, maar in plaats daarvan opgegeven in de SGD sectie.

Retourwaarde

Dropout() retourneert het resultaat van de vervolgkeuzelijst die is toegepast op de invoer. Het resultaat heeft dezelfde tensordimensies als de invoer.

Description

De Dropout() bewerking selecteert willekeurig elementen van de invoer met een bepaalde waarschijnlijkheid, de dropoutsnelheid genoemd, en stelt deze in op 0. Dit is gebleken om de generaliseerbaarheid van modellen te verbeteren.

Bij de implementatie van CNTK worden de resterende waarden die niet zijn ingesteld op 0, vermenigvuldigd met (1 / (1 - dropout rate)). Op deze manier zijn de modelparameters die zijn geleerd met vervolgkeuzelijsten rechtstreeks van toepassing op deductie. (Als dit niet is gebeurd, moet de gebruiker deze handmatig schalen vóór deductie.)

Als u vervolgkeuzelijsten in uw training wilt inschakelen, moet u ook een parameter dropoutRate toevoegen aan de SGD sectie om de vervolgkeuzelijst te definiëren. Dit wordt gedaan in een SGD sectie, in plaats van een parameter voor Dropout() zichzelf, om een training zonder vervolgkeuzelijst te starten en deze na een paar tijdvakken in te schakelen, wat een gemeenschappelijk scenario is. Hiervoor wordt de dropoutRate waarde opgegeven als een vector, waarbij elke waarde voor een specifiek tijdvak is.

Bij het uitvoeren van deductie geeft de Dropout() bewerking de invoer ongewijzigd door (het is een no-op).

Voorbeeld

Hier volgt een eenvoudig convolutioneel netwerk met een vervolgkeuzelijst aan het einde:

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)

Daarnaast hebt u een bijbehorende vermelding in de SGD sectie nodig. In het volgende voorbeeld wordt gedefinieerd dat er geen vervolgkeuzelijst wordt gebruikt voor de eerste 3 epochs en vervolgens een vervolgkeuzepercentage van 50%. Voor het gemak gebruikt dit voorbeeld de syntaxis van het sterretje (*) om herhaling aan te geven:

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