Main Content

globalAveragePooling2dLayer

2 次元グローバル平均プーリング層

R2019b 以降

説明

2 次元グローバル平均プーリング層は、入力の高さおよび幅の次元の平均を計算することによって、ダウンサンプリングを実行します。

層がプーリングを行う次元は、層の入力によって次のように異なります。

  • 2 次元イメージ入力 (2 つの空間次元内のピクセル、ならびにチャネルと観測値に対応する 4 次元のデータ) の場合、層は空間次元でプーリングします。

  • 2 次元イメージ シーケンス入力 (2 つの空間次元内のピクセル、ならびにチャネルと観測値とタイム ステップに対応する 5 次元のデータ) の場合、層は 2 つの空間次元でプーリングします。

  • 1 次元イメージ シーケンス入力 (1 つの空間次元内のピクセル、ならびにチャネルと観測値とタイム ステップに対応する 4 次元のデータ) の場合、層は空間次元と時間次元でプーリングします。

作成

説明

layer = globalAveragePooling2dLayer は、グローバル平均プーリング層を作成します。

layer = globalAveragePooling2dLayer('Name',name) は、オプションの Name プロパティを設定します。

プロパティ

すべて展開する

層の名前。文字ベクトルまたは string スカラーとして指定します。Layer 配列入力の場合、関数 trainnettrainNetworkassembleNetworklayerGraph、および dlnetwork は、名前が "" の層に自動的に名前を割り当てます。

GlobalAveragePooling2DLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。

データ型: char | string

この プロパティ は読み取り専用です。

層への入力の数。1 として返されます。この層は単一の入力のみを受け入れます。

データ型: double

この プロパティ は読み取り専用です。

入力名。{'in'} として返されます。この層は単一の入力のみを受け入れます。

データ型: cell

この プロパティ は読み取り専用です。

層からの出力の数。1 として返されます。この層には単一の出力のみがあります。

データ型: double

この プロパティ は読み取り専用です。

出力名。{'out'} として返されます。この層には単一の出力のみがあります。

データ型: cell

すべて折りたたむ

'gap1' という名前のグローバル平均プーリング層を作成します。

layer = globalAveragePooling2dLayer('Name','gap1')
layer = 
  GlobalAveragePooling2DLayer with properties:

    Name: 'gap1'

Layer 配列にグローバル平均プーリング層を含めます。

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    reluLayer
    globalAveragePooling2dLayer
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer]
layers = 
  7x1 Layer array with layers:

     1   ''   Image Input                  28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution              20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                         ReLU
     4   ''   2-D Global Average Pooling   2-D global average pooling
     5   ''   Fully Connected              10 fully connected layer
     6   ''   Softmax                      softmax
     7   ''   Classification Output        crossentropyex

ヒント

  • イメージ分類ネットワークでは、最後の全結合層の前に globalAveragePooling2dLayer を使用して、パフォーマンスを犠牲にすることなく活性化のサイズを縮小できます。活性化のサイズが縮小されるということは、下流の全結合層の重みが少なくなり、ネットワークのサイズが縮小されることを意味します。

  • 分類ネットワークの最後の方で、fullyConnectedLayer の代わりに globalAveragePooling2dLayer を使用できます。グローバル プーリング層には学習可能なパラメーターがないため、過適合が発生しにくくなり、ネットワークのサイズを縮小できます。これらのネットワークにより、入力データの空間変換に対するロバスト性を向上させることにもなります。代わりに、全結合層を globalMaxPooling2dLayer に置き換えることもできます。globalMaxPooling2dLayerglobalAveragePooling2dLayer のどちらがより適切かは、データ セットによって異なります。

    全結合層の代わりにグローバル平均プーリング層を使用するには、グローバル平均プーリング層の入力のチャネル数が分類タスクのクラス数と一致しなければなりません。

アルゴリズム

すべて展開する

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2019b で導入