ベクトルへの任意の入力配列を平滑化するネット層を表す.
FlattenLayer[n]
入力をレベル n まで平滑化するネット層を表す.
FlattenLayer[{{s11,s12,…},{s21,s22,…},…}]
結果の各レベル i を作成するために,すべてのレベル sijを組み合せて入力を平滑化するネット層を表す.
FlattenLayer
ベクトルへの任意の入力配列を平滑化するネット層を表す.
FlattenLayer[n]
入力をレベル n まで平滑化するネット層を表す.
FlattenLayer[{{s11,s12,…},{s21,s22,…},…}]
結果の各レベル i を作成するために,すべてのレベル sijを組み合せて入力を平滑化するネット層を表す.
詳細とオプション
- FlattenLayerは,より高階の配列をベクトルに変換するために,NetChainやNetGraph等の中で使われることが多い.
- FlattenLayer[n]の n は次のどれでもよい.
-
n 最初の n+1次元を一緒に平滑化する -n 最後の n+1次元を一緒に平滑化する Infinity 全次元を平滑化する - FlattenLayer[]はFlattenLayer[Infinity]に等しい.
- FlattenLayerはNetGraph等で使用するために次のポートを開放する.
-
"Input" 任意階数の配列 "Output" 配列 - FlattenLayerは,通常はNetChain等のコンテキストから入力次元を推測する.{n1,n2,…}として明示的に次元を指定したければFlattenLayer["Input"->{n1,n2,…}]を使うとよい.
- FlattenLayer[…][input]は,input に層を適用した結果の出力を明示的に計算する.
- FlattenLayer[…][{input1,input2,…}]は各 inputiについての出力を明示的に計算する.
- NumericArrayが入力として与えられると,出力はNumericArrayになる.
- Options[FlattenLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[FlattenLayer[…]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
- Information[FlattenLayer[…]]は層についてのレポートを与える.
- Information[FlattenLayer[…],prop]はFlattenLayer[…]の特性 prop の値を与える.使用可能な特性はNetGraphと同じである.
例題
すべて開く すべて閉じる例 (2)
FlattenLayerを作る:
FlattenLayer[]指定された入力次元のFlattenLayerを作る:
flat = FlattenLayer["Input" -> {3, 2}]flat[{{1, 2}, {3, 4}, {5, 6}}]スコープ (4)
入力の最初の2次元を平滑化し,他の次元はそのままにするFlattenLayerを作る:
flat = FlattenLayer[1]flat[{{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}]入力の最初の3次元を一緒に平滑化してそれを2×3×4×5配列に適用するFlattenLayerを作る:
input = RandomReal[1, {2, 3, 4, 5}];FlattenLayer[2][input]//Dimensions最後の3次元を一緒にFlattenLayerを作り,適用する:
FlattenLayer[-2][input]//DimensionsFlattenLayer[Infinity][input]//Dimensionsレベル2とレベル3を平滑化して結果の配列の第1レベルにするFlattenLayerを作成する:
input = RandomReal[1, {3, 5, 7}];FlattenLayer[{{2, 3}, {1}}][input]//Dimensions指定の入力次元でFlattenLayerを作る:
flat = FlattenLayer["Input" -> {1, 2}]flat[{{{1, 2}}, {{3, 4}}, {{5, 6}}}]特性と関係 (3)
FlattenLayer[]はFlattenのように振舞う:
data = {{1, 2, 3}, {4, 5, 6}};FlattenLayer[][data]Flatten[data]FlattenLayer[n]を計算する:
flatten[n_ ? Positive][input_] := Flatten[N[input], n];
flatten[n_ ? Negative][input_] := Block[{dims1, dims2},
{dims1, dims2} = TakeDrop[Dimensions[input], ArrayDepth[input] + n - 1];
ArrayReshape[N[input], Append[dims1, Times@@dims2]]
];data = {{{1}, {2}}, {{3}, {4}}, {{5}, {6}}};
Dimensions[data]FlattenLayer[1][data]flatten[1][data]Dimensions[%]FlattenLayer[-1][data]flatten[-1][data]Dimensions[%]FlattenLayer[n]はReshapeLayer[dims]2等しい.ただし,dims は n とFlattenLayerの入力次元に依存する.3階の配列を作る:
data = {{{1}, {2}}, {{3}, {4}}, {{5}, {6}}};
Dimensions[data]特定のFlattenLayerを適用する:
FlattenLayer[Infinity][data]同等のReshapeLayerを適用する:
ReshapeLayer[{6}][data]考えられる問題 (1)
FlattenLayerが記号入力を受け付けない:
flat = FlattenLayer[];
flat[{1, 2}]flat[{1, z}]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2016), FlattenLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/FlattenLayer.html (2021年に更新).
CMS
Wolfram Language. 2016. "FlattenLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/FlattenLayer.html.
APA
Wolfram Language. (2016). FlattenLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FlattenLayer.html
BibTeX
@misc{reference.wolfram_2026_flattenlayer, author="Wolfram Research", title="{FlattenLayer}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/FlattenLayer.html}", note=[Accessed: 21-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_flattenlayer, organization={Wolfram Research}, title={FlattenLayer}, year={2021}, url={https://reference.wolfram.com/language/ref/FlattenLayer.html}, note=[Accessed: 21-July-2026]}