GroupConvolutionBackpropData

バージョン名: GroupConvolutionBackpropData-1

カテゴリー: 畳み込み

簡単な説明: 入力テンソルとカーネルテンソルの 1D、2D、または 3D GroupConvolutionBackpropData を計算します。

詳細な説明: 入力とフィルターを複数のグループに分割し、ConvolutionBackpropData を計算し、結果を連結します。これは、GroupConvolution および Convolution 関係に相当します。

属性: この操作には、ConvolutionBackpropData と同じ属性があります。グループ数はカーネルの形状で決定されます。

  • strides

    • 説明: strides は通常の畳み込みの strides と同じ定義を持ちますが、出力テンソルに対して逆方向に適用されます。

    • 値の範囲: 正の整数

    • タイプ: int[]

    • 必須: はい

  • pads_begin

    • 説明: pads_begin は通常の畳み込みの pads_begin と同じ定義を持ちますが、出力テンソルに対して逆方向に適用されます。省略することもできますが、その場合パッドは自動的に計算されます。

    • 値の範囲: 負ではない整数

    • タイプ: int[]

    • 必須: はい

    • 注: auto_pad 属性が指定されている場合、この属性は無視されます。

  • pads_end

    • 説明: pads_end は通常の畳み込みの pads_end と同じ定義を持ちますが、出力テンソルに対して逆方向に適用されます。省略することもできますが、その場合パッドは自動的に計算されます。

    • 値の範囲: 負ではない整数

    • タイプ: int[]

    • 必須: はい

    • 注: auto_pad 属性が指定されている場合、この属性は無視されます。

  • dilations

    • 説明: dilations は通常の畳み込みの dilations と同じ定義を持ちますが、出力テンソルに対して逆方向に適用されます。

    • 値の範囲: 正の整数

    • タイプ: int[]

    • 必須: はい

  • auto_pad

    • 説明: auto_padは通常の畳み込みの auto_padと同じ定義を持ちますが、出力テンソルに対して逆方向に適用されます。

      • explicit - pads_beginpads_end からの明示的なパディング値を使用します。

      • same_upper - 入力は出力サイズに一致するようにパディングされます。奇数のパディング値の場合、最後にパディングが追加されます。

      • same_lower - 入力は出力サイズに一致するようにパディングされます。パディング値が奇数の場合、先頭にパディングが追加されます。

      • valid - パディングを使用しません。

    • タイプ: string

    • デフォルト値: explicit

    • 必須: いいえ

    • 注: auto_pad が指定されている場合、pads_beginpads_end 属性は無視されます。

  • output_padding

    • 説明: output_padding は、出力テンソルの各空間軸ごとにパディングを追加します。出力内のより多くの要素のロックが解除され、計算できるようになります。要素は、空間次元のより高い座標インデックスに追加されます。output_padding リストの要素の数は、入力テンソルと出力テンソルの空間次元の数と一致します。

    • 値の範囲: 負ではない整数値

    • タイプ: int[]

    • デフォルト値: すべてゼロ

    • 必須: いいえ

入力:

  • 1: タイプ T1 およびランク 3、4 または 5 の入力テンソル。レイアウトは、[N, GROUPS * C_IN, Z, Y, X] (バッチ数、チャネル数、空間軸 Z、Y、X) です。必須。

  • 2: タイプ T1 およびランク 4、5、または 6 のカーネルテンソル。レイアウトは、[GROUPS, C_IN, C_OUT, X, Y, Z] (グループ数、入力チャネル数、出力チャネル数、空間軸 Z、Y、X) です。必須。

  • 3: タイプ T2 およびランク 1 の出力形状テンソル。出力の空間形状を指定します。オプション。

  • 注: グループ数はカーネルの形状で決定され、属性によって指定されるものではありません。

  • 注: 畳み込みのタイプ (1D、2D、または 3D) は入力テンソルのランクで決定され、属性によって指定されません。

    • 1D 畳み込み (入力テンソルのランク 3) は、空間軸 X が 1 つだけであることを意味します

    • 2D 畳み込み (入力テンソルのランク 4) は、2 つの空間軸 Y、X があることを意味します

    • 3D 畳み込み (入力テンソルのランク 5) は、3 つの空間軸 Z、Y、X があることを意味します

出力:

  • 1: タイプ T1 およびランク 3、4、または 5 の出力テンソル (入力 1 と同じ)。レイアウトは、[N, GROUPS * C_OUT, Z, Y, X] (バッチの数、カーネル出力チャネルの数、空間軸 Z、Y、X) です。

タイプ:

  • T1: 任意の数値タイプ。

  • T2: 任意の整数タイプ。

例:

1D GroupConvolutionBackpropData

<layer id="5" name="upsampling_node" type="GroupConvolutionBackpropData">
    <data dilations="1" pads_begin="1" pads_end="1" strides="2"/>
    <input>
        <port id="0">
            <dim>1</dim>
            <dim>20</dim>
            <dim>224</dim>
        </port>
        <port id="1">
            <dim>4</dim>
            <dim>5</dim>
            <dim>2</dim>
            <dim>3</dim>
        </port>
    </input>
    <output>
        <port id="0" precision="FP32">
            <dim>1</dim>
            <dim>8</dim>
            <dim>447</dim>
        </port>
    </output>
</layer>

2D GroupConvolutionBackpropData

<layer id="5" name="upsampling_node" type="GroupConvolutionBackpropData">
    <data dilations="1,1" pads_begin="1,1" pads_end="1,1" strides="2,2"/>
    <input>
        <port id="0">
            <dim>1</dim>
            <dim>20</dim>
            <dim>224</dim>
            <dim>224</dim>
        </port>
        <port id="1">
            <dim>4</dim>
            <dim>5</dim>
            <dim>2</dim>
            <dim>3</dim>
            <dim>3</dim>
        </port>
    </input>
    <output>
        <port id="0" precision="FP32">
            <dim>1</dim>
            <dim>8</dim>
            <dim>447</dim>
            <dim>447</dim>
        </port>
    </output>
</layer>

3D GroupConvolutionBackpropData

<layer id="5" name="upsampling_node" type="GroupConvolutionBackpropData">
    <data dilations="1,1,1" pads_begin="1,1,1" pads_end="1,1,1" strides="2,2,2"/>
    <input>
        <port id="0">
            <dim>1</dim>
            <dim>20</dim>
            <dim>224</dim>
            <dim>224</dim>
            <dim>224</dim>
        </port>
        <port id="1">
            <dim>4</dim>
            <dim>5</dim>
            <dim>2</dim>
            <dim>3</dim>
            <dim>3</dim>
            <dim>3</dim>
        </port>
    </input>
    <output>
        <port id="0" precision="FP32">
            <dim>1</dim>
            <dim>8</dim>
            <dim>447</dim>
            <dim>447</dim>
            <dim>447</dim>
        </port>
    </output>
</layer>