入力配列のリストを取ってそれらを結合する.
入力配列のリストを取り,レベル n でそのリストを結合するネット層を表す.
CatenateLayer
入力配列のリストを取ってそれらを結合する.
入力配列のリストを取り,レベル n でそのリストを結合するネット層を表す.
詳細とオプション
- CatenateLayer[]はCatenateLayer[1]に等しい.
- CatenateLayerはNetGraph内で使われることが多い.
- CatenateLayer[…][{array1,array2,…}]は,arrayiのリストが与えられると明示的に出力を計算する.
- 入力配列のリスト{array1,array2,…}の arrayiは次元が互換でなければならない.必要な場合には,すべてが同じ階数になるように必要に応じて arrayiが複製される.
- 与えられている場合は,レベル n は arrayiの最小ランクの最初の次元と相対的である.
- オプションInputPortsを使って入力ポートの数,名前,形状が指定できる.InputPortsが指定されていなければ,ポートの数とその形状はNetChainまたはNetGraphの接続性から推測される.
- CatenateLayerは,NetGraph等で使用するために,入力ポートに加えて次のポートを開放する.
-
"Output" 配列 - NetGraph内で,CatenateLayerは{src1,src2,…}catlayer の形の単一の辺を使って接続することができる.catlayer はCatenateLayerの名前または指標,または src1catlayer,src2catlayer,…,srcncatlayer のように対応する順で与えられる複数の別々の辺である.
- NumericArrayが入力として与えられると,出力はNumericArrayになる.
- Options[CatenateLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[CatenateLayer[…]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
- Information[CatenateLayer[…]]は層についてのレポートを与える.
- Information[CatenateLayer[…],prop]はCatenateLayer[…]の特性 prop の値を与える.使用可能な特性はNetGraphと同じである.
例題
すべて開く すべて閉じる例 (3)
CatenateLayerを作る:
CatenateLayer[]2つのベクトルを入力として取りベクトルを返すCatenateLayerを作る:
catenate = CatenateLayer[InputPorts -> {{2}, {3}}]vec1 = {1, 2};
vec2 = {3, 4, 5};
catenate[{vec1, vec2}]入力サイズを指定して,CatenateLayerでNetGraphを作る:
net = NetGraph[{CatenateLayer[]}, {{NetPort["In1"], NetPort["In2"]} -> 1}, "In1" -> {2}, "In2" -> {3}]net[<|"In1" -> {1, 2}, "In2" -> {3, 4, 5}|>]スコープ (4)
2つの行列の行を結合するCatenateLayer を作る:
catenate = CatenateLayer[2, InputPorts -> {{2, 2}, {2, 3}}]matrix1 = {{1, 2}, {3, 4}};
matrix2 = {{5, 6, 7}, {8, 9, 10}};
catenate[{matrix1, matrix2}]//MatrixFormベクトルを繰り返すことで行列とベクトルを結合するCatenateLayerを作る:
catenate = CatenateLayer[InputPorts -> {{4, 2}, {2}}]matrix = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
vector = {9, 10}
catenate[{matrix, vector}]//MatrixFormベクトル列を表す2つの行列を入力として取ってベクトルを結合するCatenateLayerを使ってNetGraphを構築する:
net = NetGraph[{CatenateLayer[2]}, {{NetPort["In1"], NetPort["In2"]} -> 1}, "In1" -> {"Varying", 2}, "In2" -> {"Varying", 1}]sequence1 = {{1, 2}, {3, 4}, {5, 6}};
sequence2 = {{7}, {8}, {9}};
net[<|"In1" -> sequence1, "In2" -> sequence2|>]//MatrixForm2つのベクトル列を入力として取ってベクトルを結合するCatenateLayerを使ってNetGraphを構築する:
enc = NetEncoder[{"Image", 64}];
net = NetGraph[{CatenateLayer[3]}, {{NetPort["In1"], NetPort["In2"]} -> 1}, "In1" -> enc, "In2" -> enc, "Output" -> NetDecoder["Image"]]net[<|"In1" -> [image], "In2" -> [image]|>]特性と関係 (1)
入力がすべて同じ階数のとき,CatenateLayer[1]は次を計算する:
catenate[data_List] := Catenate[data]data = {{1, 2, 3}, {4, 5, 6}};
CatenateLayer[]@data
catenate@data考えられる問題 (4)
階数が等しい配列を結合する際は,オフレベル次元が等しくなければならない:
CatenateLayer[1, InputPorts -> {{2, 3}, {2, 5}}]CatenateLayer[2, InputPorts -> {{2, 3}, {2, 5}}]階数が異なる配列を結合する場合,レベルに対応する各配列の次元以外は,低階配列が高階配列の末尾に添えられなければならない:
CatenateLayer[1, InputPorts -> {{2, 3, 5}, {10, 5}}]CatenateLayer[2, InputPorts -> {{2, 3, 5}, {10, 5}}]CatenateLayer[2, InputPorts -> {{2, 3, 5}, {3, 10}}]CatenateLayerは,動的次元については結合できない:
cat = CatenateLayer[1, InputPorts -> {{"Varying", 2}, {"Varying", 2}}]cat[{{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}]cat = CatenateLayer[2, InputPorts -> {{"Varying", 2}, {"Varying", 2}}];
cat[{{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}]CatenateLayerは記号入力を受け付けない:
cat = CatenateLayer[];
cat[{{1}, {2}}]cat[{{1}, {z}}]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2016), CatenateLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/CatenateLayer.html (2018年に更新).
CMS
Wolfram Language. 2016. "CatenateLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2018. https://reference.wolfram.com/language/ref/CatenateLayer.html.
APA
Wolfram Language. (2016). CatenateLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CatenateLayer.html
BibTeX
@misc{reference.wolfram_2026_catenatelayer, author="Wolfram Research", title="{CatenateLayer}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/CatenateLayer.html}", note=[Accessed: 13-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_catenatelayer, organization={Wolfram Research}, title={CatenateLayer}, year={2018}, url={https://reference.wolfram.com/language/ref/CatenateLayer.html}, note=[Accessed: 13-August-2026]}