averagePooling2dLayer
平均プーリング層
説明
2 次元平均プーリング層は、入力を矩形のプーリング領域に分割し、各領域の平均値を計算することによって、ダウンサンプリングを実行します。
作成
説明
は、平均プーリング層を作成し、layer
= averagePooling2dLayer(poolSize
)PoolSize
プロパティを設定します。
は、名前と値のペアを使用して、オプションの layer
= averagePooling2dLayer(poolSize
,Name,Value
)Stride
プロパティおよび Name
プロパティを設定します。入力パディングを指定するには、名前と値のペアの引数 'Padding'
を使用します。たとえば、averagePooling2dLayer(2,'Stride',2)
は、プール サイズが [2 2]
、ストライドが [2 2]
の平均プーリング層を作成します。複数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。
入力引数
コンマ区切りの名前と値のペアの引数を使用して、層の入力の端に沿って追加するゼロ パディングのサイズを指定するか、Stride
プロパティおよび Name
プロパティを設定します。名前を一重引用符で囲みます。
例: averagePooling2dLayer(2,'Stride',2)
は、プール サイズが [2 2]
、ストライドが [2 2]
の平均プーリング層を作成します。
Padding
— 入力の端のパディング
[0 0 0 0]
(既定値) | 非負の整数のベクトル | 'same'
入力の端のパディング。'Padding'
と、次の値のいずれかから成るコンマ区切りのペアとして指定します。
'same'
— ストライドが 1 である場合、出力サイズが入力サイズと同じになるように、学習時または予測時にサイズが計算されたパディングを追加します。ストライドが 1 より大きい場合、出力サイズはceil(inputSize/stride)
になります。ここで、inputSize
は入力の高さまたは幅、stride
は対応する次元のストライドです。可能な場合、上下および左右に同じ量のパディングが追加されます。垂直方向に追加しなければならないパディングの値が奇数の場合、余ったパディングは下に追加されます。水平方向に追加しなければならないパディングの値が奇数の場合、余ったパディングは右に追加されます。非負の整数
p
— サイズp
のパディングを入力のすべての端に追加します。非負の整数のベクトル
[a b]
— サイズa
のパディングを入力の上下に追加し、サイズb
のパディングを左右に追加します。非負の整数のベクトル
[t b l r]
— サイズがt
、b
、l
、r
のパディングを、それぞれ入力の上、下、左、右に追加します。
例: 'Padding',1
は、入力の上下に 1 行のパディングを追加し、入力の左右に 1 列のパディングを追加します。
例: 'Padding','same'
は、(ストライドが 1 の場合) 出力サイズが入力サイズと同じになるようにパディングを追加します。
プロパティ
平均プーリング
PoolSize
— プーリング領域の次元
2 つの正の整数のベクトル
プーリング領域の次元。2 つの正の整数のベクトル [h w]
として指定します。h
は高さ、w
は幅です。層を作成する場合、PoolSize
をスカラーとして指定して、両方の次元に同じ値を使用できます。
ストライドの次元 Stride
がそれぞれのプーリングの次元より小さい場合、プーリング領域が重なります。
パディングの次元 PaddingSize
は、プーリング領域の次元 PoolSize
より小さくなければなりません。
例: [2 1]
は、高さが 2、幅が 1 のプーリング領域を指定します。
Stride
— 入力を走査するステップ サイズ
[1 1]
(既定値) | 2 つの正の整数のベクトル
入力を垂直方向および水平方向に走査するステップ サイズ。2 つの正の整数のベクトル [a b]
として指定します。a
は垂直方向のステップ サイズ、b
は水平方向のステップ サイズです。層を作成する場合、Stride
をスカラーとして指定して、両方の次元に同じ値を使用できます。
ストライドの次元 Stride
がそれぞれのプーリングの次元より小さい場合、プーリング領域が重なります。
パディングの次元 PaddingSize
は、プーリング領域の次元 PoolSize
より小さくなければなりません。
例: [2 3]
は、垂直方向のステップ サイズとして 2、水平方向のステップ サイズとして 3 を指定します。
PaddingSize
— パディングのサイズ
[0 0 0 0]
(既定値) | 4 つの非負の整数のベクトル
入力の境界に適用するパディングのサイズ。4 つの非負の整数のベクトル [t b l r]
として指定します。t
は上に適用されるパディング、b
は下に適用されるパディング、l
は左に適用されるパディング、r
は右に適用されるパディングです。
層の作成時に、名前と値のペアの引数 'Padding'
を使用してパディングのサイズを指定します。
例: [1 1 2 2]
は、入力の上下に 1 行のパディングを追加し、入力の左右に 2 列のパディングを追加します。
PaddingMode
— パディングのサイズを決定するメソッド
'manual'
(既定値) | 'same'
パディングのサイズを決定するメソッド。'manual'
または 'same'
として指定します。
PaddingMode
の値は、層の作成時に指定した 'Padding'
値に基づいて自動的に設定されます。
'Padding'
オプションをスカラーまたは非負の整数のベクトルに設定した場合、PaddingMode
は'manual'
に自動的に設定されます。'Padding'
オプションを'same'
に設定した場合、PaddingMode
が'same'
に自動的に設定されます。ストライドが 1 である場合、出力サイズが入力サイズと同じになるように、学習時にパディングのサイズが計算されます。ストライドが 1 より大きい場合、出力サイズはceil(inputSize/stride)
になります。ここで、inputSize
は入力の高さまたは幅、stride
は対応する次元のストライドです。可能な場合、上下および左右に同じ量のパディングが追加されます。垂直方向に追加しなければならないパディングの値が奇数の場合、余ったパディングは下に追加されます。水平方向に追加しなければならないパディングの値が奇数の場合、余ったパディングは右に追加されます。
PaddingValue
— 入力のパディングに使用する値
0
(既定値) | "mean"
入力のパディングに使用する値。0
または "mean"
として指定します。
Padding
オプションを使用して入力にパディングを追加する場合、適用されるパディングの値は次のいずれかになります。
0
— 入力はPadding
プロパティで指定した位置にゼロでパディングされます。パディングされた領域は、外周のプーリング領域の平均値の計算に含められます。"mean"
— 入力は、Padding
オプションで指定した位置にプーリング領域の平均でパディングされます。パディングされた領域は、各プーリング領域の平均値の計算対象から事実上除外されます。
Padding
— パディングのサイズ
[0 0]
(既定値) | 2 つの非負の整数のベクトル
メモ
Padding
プロパティは将来のリリースで削除される予定です。代わりに PaddingSize
を使用してください。層の作成時に、名前と値のペアの引数 'Padding'
を使用してパディングのサイズを指定します。
入力の境界に垂直方向および水平方向に適用するパディングのサイズ。2 つの非負の整数のベクトル [a b]
として指定します。a
は入力データの上下に適用されるパディング、b
は左右に適用されるパディングです。
例: [1 1]
は、入力の上下に 1 行のパディングを追加し、入力の左右に 1 列のパディングを追加します。
層
Name
— 層の名前
''
(既定値) | 文字ベクトル | string スカラー
層の名前。文字ベクトルまたは string スカラーとして指定します。Layer
配列入力の場合、関数 trainNetwork
、assembleNetwork
、layerGraph
、および dlnetwork
は、名前が ''
の層に自動的に名前を割り当てます。
データ型: char
| string
NumInputs
— 入力の数
1
(既定値)
このプロパティは読み取り専用です。
層の入力の数。この層は単一の入力のみを受け入れます。
データ型: double
InputNames
— 入力名
{'in'}
(既定値)
このプロパティは読み取り専用です。
層の入力名。この層は単一の入力のみを受け入れます。
データ型: cell
NumOutputs
— 出力の数
1
(既定値)
このプロパティは読み取り専用です。
層の出力の数。この層には単一の出力のみがあります。
データ型: double
OutputNames
— 出力名
{'out'}
(既定値)
このプロパティは読み取り専用です。
層の出力名。この層には単一の出力のみがあります。
データ型: cell
例
平均プーリング層の作成
'avg1'
という名前の平均プーリング層を作成します。
layer = averagePooling2dLayer(2,'Name','avg1')
layer = AveragePooling2DLayer with properties: Name: 'avg1' Hyperparameters PoolSize: [2 2] Stride: [1 1] PaddingMode: 'manual' PaddingSize: [0 0 0 0] PaddingValue: 0
Layer
配列に平均プーリング層を含めます。
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
reluLayer
averagePooling2dLayer(2)
fullyConnectedLayer(10)
softmaxLayer
classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' Average Pooling 2x2 average pooling with stride [1 1] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
プーリング領域が重なっていない平均プーリング層の作成
プーリング領域が重なっていない平均プーリング層を作成します。
layer = averagePooling2dLayer(2,'Stride',2)
layer = AveragePooling2DLayer with properties: Name: '' Hyperparameters PoolSize: [2 2] Stride: [2 2] PaddingMode: 'manual' PaddingSize: [0 0 0 0] PaddingValue: 0
矩形領域の高さと幅 (プール サイズ) はどちらも 2 です。イメージを垂直方向および水平方向に走査するステップ サイズ (ストライド) も 2 であるため、プーリング領域は重なりません。
Layer
配列に領域が重なっていない平均プーリング層を含めます。
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer averagePooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' Average Pooling 2x2 average pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
プーリング領域が重なっている平均プーリング層の作成
プーリング領域が重なっている平均プーリング層を作成します。
layer = averagePooling2dLayer([3 2],'Stride',2)
layer = AveragePooling2DLayer with properties: Name: '' Hyperparameters PoolSize: [3 2] Stride: [2 2] PaddingMode: 'manual' PaddingSize: [0 0 0 0] PaddingValue: 0
この層は、サイズ [3 2] のプーリング領域を作成し、各領域の 6 つの要素の平均を取ります。Stride
に含まれる次元がそれぞれのプーリングの次元 PoolSize
より小さいため、プーリング領域が重なります。
Layer
配列に領域が重なっている平均プーリング層を含めます。
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer averagePooling2dLayer([3 2],'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' Average Pooling 3x2 average pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
詳細
平均プーリング層
2 次元平均プーリング層は、入力を矩形のプーリング領域に分割し、各領域の平均値を計算することによって、ダウンサンプリングを実行します。
プーリング層は、畳み込み層の後にあり、ダウンサンプリングを行います。これにより、後続の層への結合の数が少なくなります。これら自体は学習を一切行いませんが、後続の層で学習されるパラメーターの数を減らします。また、過適合を抑えるためにも役立ちます。
平均プーリング層は、入力の矩形領域の平均値を出力します。矩形領域のサイズは averagePoolingLayer
の引数 poolSize
によって決まります。たとえば、poolSize
が [2,3] の場合、この層は高さ 2、幅 3 の領域の平均値を返します。
プーリング層は、名前と値のペアの引数 'Stride'
を使用して指定できるステップ サイズで、入力を水平方向と垂直方向にスキャンします。プール サイズがストライド以下である場合、プーリング領域は重なりません。
重ならない領域 (Pool Size と Stride が等しい) については、プーリング層への入力が n x n であり、プーリング領域のサイズが h x h である場合、プーリング層は領域を h でダウンサンプリングします [1]。つまり、畳み込み層の 1 つのチャネルの最大プーリング層と平均プーリング層の出力は、n/h x n/h になります。重なる領域については、プーリング層の出力は (Input Size – Pool Size + 2*Padding)/Stride + 1 になります。
参照
[1] Nagi, J., F. Ducatelle, G. A. Di Caro, D. Ciresan, U. Meier, A. Giusti, F. Nagi, J. Schmidhuber, L. M. Gambardella. ''Max-Pooling Convolutional Neural Networks for Vision-based Hand Gesture Recognition''. IEEE International Conference on Signal and Image Processing Applications (ICSIPA2011), 2011.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
バージョン履歴
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)