concatenationLayer
説明
連結層は入力を取り、指定された次元に沿って入力を連結します。入力のサイズは、連結の次元を除き、すべての次元で同じでなければなりません。
作成時に層への入力の数を指定します。入力の名前は 'in1','in2',...,'inN'
になります。N
は入力の数です。connectLayers
または disconnectLayers
を使用して層の結合または切り離しを行うときには、入力名を使用します。
作成
プロパティ
連結
Dim
— 連結の次元
正の整数
連結の次元。正の整数として指定します。層は、チャネル次元および空間次元に対してのみ連結をサポートします。
例: 4
層
NumInputs
— 入力の数
正の整数
層への入力の数。2 以上の正の整数として指定します。
入力の名前は 'in1','in2',...,'inN'
になります。ここで、N
は NumInputs
です。たとえば、NumInputs
が 3 である場合、入力の名前は 'in1','in2'
および 'in3'
になります。関数 connectLayers
または disconnectLayers
を使用して層の結合または切り離しを行うときには、入力名を使用します。
InputNames
— 入力名
{'in1','in2',…,'inN'}
(既定値)
入力名。{'in1','in2',...,'inN'}
として指定します。ここで、N
は層の入力の数です。
データ型: cell
NumOutputs
— 出力の数
1
(既定値)
この プロパティ は読み取り専用です。
層からの出力の数。1
として返されます。この層には単一の出力のみがあります。
データ型: double
OutputNames
— 出力名
{'out'}
(既定値)
この プロパティ は読み取り専用です。
出力名。{'out'}
として返されます。この層には単一の出力のみがあります。
データ型: cell
例
連結層の作成と結合
4 番目の次元 (チャネル) に沿って 2 つの入力を連結する連結層を作成します。連結層に 'concat'
という名前を付けます。
concat = concatenationLayer(4,2,'Name','concat')
concat = ConcatenationLayer with properties: Name: 'concat' Dim: 4 NumInputs: 2 InputNames: {'in1' 'in2'}
2 つの ReLU 層を作成し、これらの層を連結層に結合します。連結層で ReLU 層の出力が連結されます。
relu_1 = reluLayer('Name','relu_1'); relu_2 = reluLayer('Name','relu_2'); net = dlnetwork; net = addLayers(net, relu_1); net = addLayers(net, relu_2); net = addLayers(net, concat); net = connectLayers(net, 'relu_1', 'concat/in1'); net = connectLayers(net, 'relu_2', 'concat/in2'); plot(net)
アルゴリズム
層の入力形式と出力形式
層配列内または層グラフ内の層は、形式を整えた dlarray
オブジェクトとして後続の層にデータを渡します。dlarray
オブジェクトの形式は文字列で、各文字はデータ内の対応する次元を表します。この形式には次の文字が 1 つ以上含まれています。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、4 次元配列として表された 2 次元イメージ データがあり、最初の 2 つの次元がイメージの空間次元に対応し、3 番目の次元がイメージのチャネルに対応し、4 番目の次元がバッチ次元に対応している場合、このイメージ データは "SSCB"
(空間、空間、チャネル、バッチ) という形式で表されます。
functionLayer
オブジェクトを使用するか、関数 forward
と関数 predict
を dlnetwork
オブジェクトと共に使用して、カスタム層の開発などの自動微分ワークフローで、これらの dlarray
オブジェクトを操作できます。
次の表は、ConcatenationLayer
オブジェクトでサポートされている入力形式、および対応する出力形式を示しています。ソフトウェアが nnet.layer.Formattable
クラスを継承していないカスタム層、または Formattable
プロパティが 0
(false
) に設定された FunctionLayer
オブジェクトに層の出力を渡す場合、その層は形式を整えていない dlarray
オブジェクトを受け取り、この表に示された形式に従って次元が並べられます。ここには一部の形式のみを示します。層では、追加の "S"
(空間) 次元または "U"
(未指定) 次元をもつ形式など、追加の形式がサポートされている場合があります。
層は、"S"
(spatial) 次元および "C"
(channel) 次元に対してのみ連結をサポートします。出力形式は入力形式と一致します。各入力は、同じ形式のデータをもたなければなりません。
入力形式 | 出力形式 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dlnetwork
オブジェクトでは、ConcatenationLayer
オブジェクトもこれらの入力形式と出力形式の組み合わせをサポートします。
入力形式 | 出力形式 |
---|---|
|
|
|
|
|
|
|
|
複素数
ConcatenationLayer
オブジェクトは、複素数値の入力と出力をサポートします。 (R2024a 以降)この層は、複素数値の入力に対して実数値の入力に対する演算と同じように基となる演算を適用し、結果が複素数となった場合は複素数値のデータを出力します。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
バージョン履歴
R2019a で導入R2024a: 複素数値の入力と出力のサポート
ConcatenationLayer
オブジェクトは、複素数値の入力と出力をサポートします。この層は、複素数値の入力に対して実数値の入力に対する演算と同じように基となる演算を適用し、結果が複素数となった場合は複素数値のデータを出力します。
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)