Dela via


Listruta

Dropout-funktion.

Dropout (x)

Parametrar

  • x: indata för att tillämpa dropout-funktionen på

Obs! Avhoppsfrekvensen är inte en parameter för den här funktionen, utan anges i stället i SGD avsnittet .

Returvärde

Dropout() returnerar resultatet av den dropout-åtgärd som tillämpas på indata. Resultatet har samma tensordimensioner som indata.

Description

Åtgärden Dropout() väljer slumpmässigt element i indata med en angiven sannolikhet som kallas avhoppsfrekvens och anger dem till 0. Detta har visat sig förbättra generaliserbarheten för modeller.

I CNTK implementering multipliceras de återstående värdena som inte är inställda på 0 i stället med (1 / (1 - avhoppsfrekvens)). På så sätt kan modellparametrarna som lärs in med avhopp tillämpas direkt i slutsatsdragning. (Om detta inte gjordes skulle användaren behöva skala dem manuellt före slutsatsdragningen.)

Om du vill aktivera avhopp i träningen måste du också lägga till en parameter dropoutRate i SGD avsnittet för att definiera avhoppsfrekvensen. Detta görs i SGD ett avsnitt, i stället för en parameter för Dropout() sig själv, för att kunna starta en träning utan avhopp och sedan aktivera den efter några epoker, vilket är ett vanligt scenario. För detta dropoutRate anges som en vektor, där varje värde är för en specifik epok.

När du kör slutsatsdragning Dropout() skickar åtgärden sina indata oförändrade (det är en no-op).

Exempel

Följande är ett enkelt convolutional-nätverk med ett avhoppslager mot slutet:

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)

Dessutom behöver du en motsvarande post i avsnittet SGD . I följande exempel definieras att ingen avhopp ska användas för de tre första epokerna och sedan fortsätta med en avhoppsfrekvens på 50 %. För enkelhetens skull använder det här exemplet asterisksyntaxen (*) för att ange upprepning:

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