このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
maxUnpooling2dLayer
最大逆プーリング層
説明
2 次元最大逆プーリング層は、2 次元最大プーリング層の出力を逆プーリングします。
作成
プロパティ
NumInputs
— 入力の数
3 (既定値)
層の入力の数。
この層には次の 3 つの入力があります。
'in'
— 逆プーリングする入力の特徴マップ。'indices'
— プールされた各領域の最大値のインデックス。これは最大プーリング層によって出力されます。'size'
— 逆プーリングされた特徴マップの出力サイズ。これは最大プーリング層によって出力されます。
connectLayers
または disconnectLayers
をそれぞれ使用して最大逆プーリング層から他の層への結合または切り離しを行うときには、入力名を使用します。
データ型: double
InputNames
— 入力名
{'in','indices','size'}
(既定値)
層の入力名。
この層には次の 3 つの入力があります。
'in'
— 逆プーリングする入力の特徴マップ。'indices'
— プールされた各領域の最大値のインデックス。これは最大プーリング層によって出力されます。'size'
— 逆プーリングされた特徴マップの出力サイズ。これは最大プーリング層によって出力されます。
connectLayers
または disconnectLayers
をそれぞれ使用して最大逆プーリング層から他の層への結合または切り離しを行うときには、入力名を使用します。
データ型: cell
NumOutputs
— 出力の数
1
(既定値)
この プロパティ は読み取り専用です。
層からの出力の数。1
として返されます。この層には単一の出力のみがあります。
データ型: double
OutputNames
— 出力名
{'out'}
(既定値)
この プロパティ は読み取り専用です。
出力名。{'out'}
として返されます。この層には単一の出力のみがあります。
データ型: cell
例
最大逆プーリング層の作成
最大プーリング層の出力を逆プーリングする最大逆プーリング層を作成します。
layer = maxUnpooling2dLayer
layer = MaxUnpooling2DLayer with properties: Name: '' NumInputs: 3 InputNames: {'in' 'indices' 'size'}
最大プーリング層の逆プーリング
最大プーリング層を作成し、'HasUnpoolingOutputs'
プロパティを true
に設定します。このプロパティにより、最大プーリング層に 2 つの追加の出力 'indices'
および 'size'
が指定されます。この結果、層の逆プーリングが可能になります。最大逆プーリング層も作成します。
layers = [ maxPooling2dLayer(2,'Stride',2,'Name','mpool','HasUnpoolingOutputs',true) maxUnpooling2dLayer('Name','unpool')]
layers = 2x1 Layer array with layers: 1 'mpool' 2-D Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 2 'unpool' 2-D Max Unpooling 2-D Max Unpooling
層を dlnetwork
オブジェクトに追加します。
net = dlnetwork; net = addLayers(net,layers)
net = dlnetwork with properties: Layers: [2x1 nnet.cnn.layer.Layer] Connections: [1x2 table] Learnables: [0x3 table] State: [0x3 table] InputNames: {'mpool' 'unpool/indices' 'unpool/size'} OutputNames: {'mpool/indices' 'mpool/size' 'unpool'} Initialized: 0 View summary with summary.
最大プーリング層の出力を最大逆プーリング層の入力に結合することによって、最大プーリング層の出力を逆プーリングします。
net = connectLayers(net,'mpool/indices','unpool/indices'); net = connectLayers(net,'mpool/size','unpool/size');
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
カーネル ウィンドウの非対角要素に沿って等しい最大値が存在する場合、maxPooling2dLayer
の実装の違いにより、MATLAB® と生成コードの間にわずかな数値の不一致が生じる可能性があります。この問題により、プールされた各領域の最大値のインデックスにおいて不一致が生じる可能性もあります。
たとえば、maxPooling2dLayer
への次の入力について考えます。MATLAB からの出力は以下のようになります。
同じ入力に対して、生成コードからの出力は以下のようになります。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
カーネル ウィンドウの非対角要素に沿って等しい最大値が存在する場合、maxPooling2dLayer
の実装の違いにより、MATLAB と生成コードの間にわずかな数値の不一致が生じる可能性があります。この問題により、プールされた各領域の最大値のインデックスにおいて不一致が生じる可能性もあります。
たとえば、maxPooling2dLayer
への次の入力について考えます。MATLAB からの出力は以下のようになります。
同じ入力に対して、生成コードからの出力は以下のようになります。
バージョン履歴
R2017b で導入
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)