Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Pooling (input,
poolKind, # "max" or "average"
{kernel dimensions},
stride = {stride dimensions},
autoPadding = {padding flags (boolean)},
lowerPad = {lower padding (int)},
upperPad = {upper padding (int)})
Met de poolbewerkingen wordt een nieuwe matrix berekend door de maximumwaarde (maximale pooling) of de gemiddelde waarde in de poolinvoer te selecteren. In het geval van gemiddelde pooling bevat het aantal gemiddelden geen opgevulde waarden.
N-dimensionale pooling maakt het mogelijk om maximale of gemiddelde pooling van dimensies,ride of opvulling te maken. De syntaxis is:
Hierbij
input- poolinvoerpoolKind- "max" of "average"{kernel dimensions}- dimensies van het poolvenster, als een BrainScript-vector, bijvoorbeeld(4:4).stride- [benoemd, optioneel, standaard is 1] stappen.autoPadding- [benoemd, optioneel, standaardwaarde is waar] automatische opvullingsvlagmen voor elke invoerdimensie.lowerPad- [benoemd, optioneel, standaardwaarde is 0] exacte lagere opvulling voor elke invoerdimensieupperPad- [benoemd, optioneel, standaardwaarde is 0] nauwkeurige bovenste opvulling voor elke invoerdimensie
Alle dimensiematrices zijn gescheiden door dubbele puntjes. Opmerking: Als u de afgeschafte NDLNetworkBuilderwaarden gebruikt, moeten deze door komma's gescheiden en in plaats daarvan worden ingesloten { } .
Aangezien het poolvenster willekeurige dimensies kan hebben, kan dit verschillende poolconfiguraties bouwen, bijvoorbeeld een 'Maxout'-laag (zie Goodfellow et al voor meer informatie):
MaxOutPool (inp, kW, kH, kC, hStride, vStride) =
Pooling (inp, "max", (kW:kH:kC), stride=(hStride:vStride:kC), true:true:false))
Vereenvoudigde syntaxis voor 2D-pooling
Er is een vereenvoudigde syntaxis voor 2D-pooling:
MaxPooling(m, windowWidth, windowHeight, stepW, stepH, imageLayout="cudnn" /* or "HWC"*/ )
AveragePooling(m, windowWidth, windowHeight, stepW, stepH, imageLayout="cudnn" /* or "HWC"*/ )
met de volgende parameters:
m- de invoermatrix.windowWidth- breedte van het poolvensterwindowHeight- hoogte van het poolvensterstepW- stap (of stride) gebruikt in de breedterichtingstepH- stap (of stride) gebruikt in de hoogterichtingimageLayout- [benoemd optioneel] de opslagindeling van elke afbeelding. Dit is een verouderde optie die u waarschijnlijk niet nodig hebt. Dit betekent standaardHWCdat elke afbeelding wordt opgeslagen als[channel, width, height]in de primaire kolom-notatie. Voor betere prestaties is het raadzaam cuDNN te gebruiken. In dat geval moet u deze instellen opcudnn, wat betekent dat elke afbeelding wordt opgeslagen als [breedte, hoogte, kanaal] in de primaire kolom notatie. Houd er rekening mee datcudnnde indeling werkt op GPU en CPU.
Voorbeeld (ConvReLULayer NDL-macro):
# pool2
pool2W = 2
pool2H = 2
pool2hStride = 2
pool2vStride = 2
pool2 = MaxPooling (conv2, pool2W, pool2H, pool2hStride, pool2vStride, imageLayout="$imageLayout$")
Opmerking: Als u de afgeschafte NDLNetworkBuilderparameter gebruikt, wordt de optionele imageLayout parameter standaard ingesteld "HWC" op.