DeconvolutionLayer[n,sz]
n 個の出力チャンネルを持ちサイズ sz のカーネルを使ってデコンボリューションを計算する,訓練可能なデコンボリューションネットの層を表す.
DeconvolutionLayer[n,{s}]
サイズ s のカーネルを使って一次元のデコンボリューションを行う層を表す.
DeconvolutionLayer[n,{h,w}]
サイズ h×w のカーネルを使って二次元のデコンボリューションを行う層を表す.
DeconvolutionLayer[n,kernel,opts]
初期カーネルとその他のパラメータについてのオプションを含む.
DeconvolutionLayer
DeconvolutionLayer[n,sz]
n 個の出力チャンネルを持ちサイズ sz のカーネルを使ってデコンボリューションを計算する,訓練可能なデコンボリューションネットの層を表す.
DeconvolutionLayer[n,{s}]
サイズ s のカーネルを使って一次元のデコンボリューションを行う層を表す.
DeconvolutionLayer[n,{h,w}]
サイズ h×w のカーネルを使って二次元のデコンボリューションを行う層を表す.
DeconvolutionLayer[n,kernel,opts]
初期カーネルとその他のパラメータについてのオプションを含む.
詳細とオプション
- DeconvolutionLayer[…][input]は,層を input に適用して,出力を明示的に計算する.
- DeconvolutionLayer[…][{input1,input2,…}]は,各 inputiについて出力を明示的に計算する.
- 次の任意パラメータを含むことができる.
-
"Biases" Automatic カーネルのバイアスの初期ベクトル "ChannelGroups" 1 チャンネルグループ数 "Dilation" 1 膨張係数 Interleaving False チャンネル次元の位置 LearningRateMultipliers Automatic カーネルの重みおよび/またはバイアスの学習率乗数 PaddingSize 0 出力から除く充填の量 "Stride" 1 使用するたたみ込みの刻み幅 "Weights" Automatic カーネルの重みの初期行列 - PaddingSizeの設定は,以下の形式でよい.
-
n 最初と最後の n 要素ごとに各次元を切り取る {n1,n2,…} i
次元の先頭と末尾の n 要素を切り取る{{n1,m1},{n2,m2},…} i
次元を,先頭の ni要素と末尾の mi要素で切り取る"Same" 出力サイズが入力サイズにストライドを掛けたものと等しくなるように,すべての次元を切り取る - "Dilation"および"Stride"の設定は,次の形式でよい.
-
n 全次元に値 n を使う {…,ni,…} 第 i
次元に値 niを使う - "ChannelGroups"g と設定することで,m 個の入力チャンネルと n 個の出力チャンネルが,それぞれ m/g チャンネルと n/g チャンネルの g 個のグループに分割される.m と n は g で割り切れなければならない.入力チャンネルの i
番目のグループを出力チャンネルの i
番目のグループと接続するために別々のデコンボリューションが行われる.結果は出力に連結される.入出力グループの各ペアは n/g×m/g デコンボリューションで接続されるので,"ChannelGroups"g という設定は,事実上,明確なデコンボリューションの数を n×m から n×m/g に減らす. - Automaticの設定のとき,NetInitializeまたはNetTrainが使われると重みとバイアスが自動的に加えられる.
- "Biases"->Noneの設定はバイアスを使わないように指定する.
- InterleavingFalseの設定のときは,チャンネル次元は入出力配列の最初の次元であるとみなされる.
- InterleavingTrueの設定のときは,チャンネル次元は入出力配列の最後の次元であるとみなされる.
- 重みとバイアスが加えられると,DeconvolutionLayer[…][input]は層を適用して明示的に出力を計算する.
- DeconvolutionLayer[…][{input1,input2,…}]は各 inputiについて明示的に出力を計算する.
- NumericArrayが入力として与えられると,出力はNumericArrayになる.
- NetExtractを使ってDeconvolutionLayerオブジェクトから重みとバイアスを取り出すことができる.
- DeconvolutionLayerはNetChainやNetGraphの中で使われることが多い.
- DeconvolutionLayerはNetGraph等で使うために次のポートを開放する.
-
"Input" 階数3の配列 "Output" 階数3の配列 - より大きいネットの他の層から推測できない場合は,オプション"Input"->{d1,d2,d3}を使ってDeconvolutionLayerの入力次元を固定することができる.
- 次元 d1×d2×d3の入力配列を与えられた場合,出力配列の次元は
×
×
である.ただし,チャンネル次元は
=n でサイズ d2および d3は
=s(di-1)+df(k-1)+1-pb-pe従って変換される.ただし,df は膨張係数,
/
は軸の始まり/終りの充填サイズ,k はカーネルサイズ,s は各次元のストライドサイズである. - Options[DeconvolutionLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[DeconvolutionLayer[…]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
- Information[DeconvolutionLayer[…]]は層についてのレポートを与える.
- Information[DeconvolutionLayer[…],prop]はDeconvolutionLayer[…]の特性 prop の値を与える.使用可能な特性はNetGraphと同じである.
例題
すべて開く すべて閉じる例 (3)
5つの出力チャンネルで2×2カーネルサイズのDeconvolutionLayerを作る:
DeconvolutionLayer[5, {2, 2}]入力次元を指定して,ランダムに初期化されたDeconvolutionLayerを作る:
deconv = DeconvolutionLayer[1, {2, 2}, "Input" -> {1, 2, 2}]//NetInitializedeconv[{{{1, 1}, {1, -2}}}]//MatrixForm画像を取って画像を作成する,ランダムに初期化されたDeconvolutionLayerを作る:
deconv = DeconvolutionLayer[2, {3, 3}, "Input" -> NetEncoder["Image"], "Output" -> NetDecoder["Image"]]//NetInitializedeconv[[image]]deconv[{[image], [image]}]スコープ (6)
引数 (3)
2つの出力チャンネルでカーネルサイズが3のDeconvolutionLayerを作成する:
DeconvolutionLayer[2, 3]DeconvolutionLayer[2, {3}]DeconvolutionLayer[2, {3, 3}]ポート (3)
層の"Input"ポートがサイズ3×64×64の配列を取るように指定する:
DeconvolutionLayer[2, {3, 3}, "Input" -> {3, 64, 64}]"Input"ポートと"Output"ポートを明示的に指定する:
DeconvolutionLayer[2, {3, 3}, "Input" -> {3, 64, 64}, "Output" -> {2, 66, 66}]画像のエンコーダ/デコーダをレイヤーの"Input"ポートと"Output"ポートに追加する:
deconv = DeconvolutionLayer[3, {2, 2}, "Input" -> NetEncoder[{"Image", {28, 28}, "Grayscale"}], "Output" -> NetDecoder[{"Image", "RGB"}]]//NetInitializedeconv[[image]]オプション (12)
"バイアス" (1)
バイアスなしで,ランダムに初期化されたDeconvolutionLayerを作る:
deconv = NetInitialize@DeconvolutionLayer[2, {4, 4}, "Input" -> {1, 40, 40}, "Biases" -> None]NetExtract[deconv, "Biases"]"ChannelGroups" (1)
一つ以上のチャンネルグループでDeconvolutionLayerを初期化する:
deconv =
NetInitialize@
DeconvolutionLayer[3, {3, 3}, "Input" -> NetEncoder["Image"], "Output" -> NetDecoder["Image"], "ChannelGroups" -> 3]deconv[[image]]```"膨張" (2)
指定の次元におけるサイズ n の膨張係数は,事実上,カーネルを距離 n 離れている出力配列の要素に適用する.
一次元DeconvolutionLayerを膨張係数2で作成する:
deconv = DeconvolutionLayer["Weights" -> {{{0.5, 0.5}}}, "Biases" -> None, "Dilation" -> 2]deconv[{{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}}] // Normalランダムな二次元DeconvolutionLayerを膨張係数5で作成する:
deconv = NetInitialize@DeconvolutionLayer[3, {3, 3}, "Dilation" -> 5, "Input" -> NetEncoder[ "Image"], "Output" -> NetDecoder["Image"]]deconv[[image]]Interleaving (1)
InterleavingFalseと1つの入力チャンネルでDeconvolutionLayerを作る:
DeconvolutionLayer[1, 5, "Input" -> {1, 25, 25}, Interleaving -> False]InterleavingTrueと1つの入力チャンネルでDeconvolutionLayerを作る:
DeconvolutionLayer[1, 5, "Input" -> {25, 25, 1}, Interleaving -> True]LearningRateMultipliers (1)
訓練中は決して変化しないDeconvolutionLayerを作成する:
NetInitialize@DeconvolutionLayer[5, {7, 7}, "Input" -> {3, 12, 12}, LearningRateMultipliers -> 0]PaddingSize (4)
DeconvolutionLayer[1, 2, "Input" -> {1, 25, 25}]PaddingSizen を使って固定された量を切り取る:
DeconvolutionLayer[1, 2, "Input" -> {1, 25, 25}, PaddingSize -> 1]DeconvolutionLayer[1, 2, "Input" -> {1, 25, 25}, PaddingSize -> {1, 2}]DeconvolutionLayer[1, 5, "Input" -> {1, 25, 25}, PaddingSize -> 2]これはPaddingSize "Same"に等しい:
deconv = DeconvolutionLayer[1, 5, "Input" -> {1, 25, 25}, PaddingSize -> "Same"]一般に,PaddingSize "Same"は,入力サイズにスライドを掛けたものに等しい出力サイズを与える:
DeconvolutionLayer[1, 5, "Input" -> {1, 25, 25}, PaddingSize -> "Same", "Stride" -> 2]"Stride" (1)
deconv1 = DeconvolutionLayer[3, 7, "Input" -> {3, 32, 32}, "Stride" -> 1 ]deconv1[["Output"]]deconv2 = DeconvolutionLayer[3, 7, "Input" -> {3, 32, 32}, "Stride" -> 7 ]deconv2[["Output"]]特性と関係 (1)
次の関数は,パラメータの入力サイズを与えられた場合に,非チャンネル次元
を計算する:
outputSize[inputSize_List, kernSize_, stride_, pad_] := (stride * (inputSize - 1) + kernSize - 2 * pad)入力サイズ{256,120},カーネルサイズ3,ストライドサイズ2,充填サイズ2のときの出力サイズ:
outputSize[{256, 120}, 5, 3, 2]Information[DeconvolutionLayer[11, 5, "Input" -> {11, 256, 120}, "Stride" -> 3, "PaddingSize" -> 2], "OutputPorts"]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2016), DeconvolutionLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/DeconvolutionLayer.html (2020年に更新).
CMS
Wolfram Language. 2016. "DeconvolutionLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/DeconvolutionLayer.html.
APA
Wolfram Language. (2016). DeconvolutionLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DeconvolutionLayer.html
BibTeX
@misc{reference.wolfram_2026_deconvolutionlayer, author="Wolfram Research", title="{DeconvolutionLayer}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/DeconvolutionLayer.html}", note=[Accessed: 12-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_deconvolutionlayer, organization={Wolfram Research}, title={DeconvolutionLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/DeconvolutionLayer.html}, note=[Accessed: 12-September-2026]}