Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pooling (input,
poolKind, # "max" or "average"
{kernel dimensions},
stride = {stride dimensions},
autoPadding = {padding flags (boolean)},
lowerPad = {lower padding (int)},
upperPad = {upper padding (int)})
Operace sdružování vypočítá novou matici výběrem maximální (maximální hodnoty sdružování) nebo průměrné hodnoty ve vstupu sdružování. V případě průměrného sdružování nezahrnuje počet průměrovaných hodnot.
Ndimenzionální sdružování umožňuje vytvořit maximální nebo průměrné sdružování libovolných dimenzí, stride nebo odsazení. Syntaxe je:
kde:
input- vstup ve fondupoolKind- "max" nebo "průměr"{kernel dimensions}- rozměry okna sdružování, jako vektor BrainScriptu, např.(4:4)stride- [pojmenované, volitelné, výchozí hodnota je 1] kroky.autoPadding- [pojmenovaný, volitelný, výchozí je true] automatické odsazení příznaky pro každou vstupní dimenzi.lowerPad- [pojmenované, volitelné, výchozí hodnota je 0] přesné dolní odsazení pro každou vstupní dimenziupperPad- [pojmenovaný, volitelný, výchozí hodnota je 0] přesné horní odsazení pro každou vstupní dimenzi
Všechna pole dimenzí jsou oddělená dvojtečkami. Poznámka: Pokud používáte zastaraléNDLNetworkBuilder, musí být tyto hodnoty oddělené čárkami a uzavřeny.{ }
Vzhledem k tomu, že okno sdružování může mít libovolné rozměry, umožňuje vytvářet různé konfigurace sdružování, například vrstvu Maxout (podrobnosti viz Goodfellow et al ):
MaxOutPool (inp, kW, kH, kC, hStride, vStride) =
Pooling (inp, "max", (kW:kH:kC), stride=(hStride:vStride:kC), true:true:false))
Zjednodušená syntaxe pro 2D sdružování
Pro sdružování 2D existuje zjednodušená syntaxe:
MaxPooling(m, windowWidth, windowHeight, stepW, stepH, imageLayout="cudnn" /* or "HWC"*/ )
AveragePooling(m, windowWidth, windowHeight, stepW, stepH, imageLayout="cudnn" /* or "HWC"*/ )
s následujícími parametry:
m- vstupní matice.windowWidth- šířka okna sdružováníwindowHeight- výška okna bazénustepW- krok (nebo krok) použitý ve směru šířkystepH- krok (nebo krok) použitý ve směru výškyimageLayout- [pojmenované volitelné] formát úložiště jednotlivých imagí. Jedná se o starší možnost, kterou pravděpodobně nebudete potřebovat. Ve výchozím nastavení jeHWCto , což znamená, že každý obrázek je uložený jako[channel, width, height]v hlavním zápisu sloupce. Pro lepší výkon se doporučuje použít cuDNN v takovém případě, že byste ho měli nastavit nacudnn, což znamená, že každý obrázek se uloží jako [šířka, výška, kanál] v hlavním zápisu sloupce. Všimněte si, žecudnnformát funguje jak na GPU, tak na procesoru.
Příklad (makro ConvReLULayer NDL):
# pool2
pool2W = 2
pool2H = 2
pool2hStride = 2
pool2vStride = 2
pool2 = MaxPooling (conv2, pool2W, pool2H, pool2hStride, pool2vStride, imageLayout="$imageLayout$")
Poznámka: Pokud používáte zastaralé NDLNetworkBuilder, volitelný imageLayout parametr se "HWC" místo toho použije.