StridedSlice

バージョン名: StridedSlice-1

カテゴリー: データ移動

簡単な説明: StridedSlice は、テンソルのストライドスライスを抽出します。

属性:

  • begin_mask

    • 説明: begin_mask はビット・マスクです。begin_mask[i]1 に等しい場合は、begin 入力の対応する次元が無視され、テンソルの ‘実際’ の始まりが対応する次元に沿って使用されることを意味します。

    • 値の範囲: 01 のリスト

    • タイプ: int[]

    • デフォルト値: なし

    • 必須: はい

  • end_mask

    • 説明: end_mask はビット・マスクです。end_mask[i]1 の場合、end 入力の対応する次元は無視され、テンソルの実際の ‘終了’ が対応する次元に沿って使用されます。

    • 値の範囲: 01 のリスト

    • タイプ: int[]

    • デフォルト値: なし

    • 必須: はい

  • new_axis_mask

    • 説明: new_axis_mask はビット・マスクです。If new_axis_mask[i]1 の場合、長さ 1 次元が入力テンソルの i 番目の位置に挿入されます。

    • 値の範囲: 01 のリスト

    • タイプ: int[]

    • デフォルト値: [0]

    • 必須: いいえ

  • shrink_axis_mask

    • 説明: shrink_axis_mask はビット・マスクです。shrink_axis_mask[i]1 の場合、i 番目の位置の次元が削除されます。

    • 値の範囲: 01 のリスト

    • タイプ: int[]

    • デフォルト値: [0]

    • 必須: いいえ

  • ellipsis_mask

    • 説明: ellipsis_mask はビット・マスクです。欠落している次元をゼロ以外のビットの位置に挿入します。

    • 値の範囲: 01 のリスト。ゼロ以外のビットは 1 つだけ許可されます。

    • タイプ: int[]

    • デフォルト値: [0]

    • 必須: いいえ

入力:

  • 1: data - スライスされるタイプ T および任意の形状の入力テンソル。必須。

  • 2: begin - 入力テンソルスライスの開始インデックスを持つ T_IND タイプの 1D テンソル。必須。 範囲外の値は黙ってクランプされます。begin_mask[i]1 の場合、begin[i] の値は無視され、適切な次元の範囲は 0 から始まります。負の値は、インデックス作成が最後から開始されることを意味します。例えば、data=[1,2,3] の場合、begin[0]=-1begin[0]=3 を意味します。

  • 3: end - 入力テンソルスライスの終了インデックスを持つ T_IND タイプの 1D テンソル。必須。 範囲外の値は警告なしにクランプされます。end_mask[i]1 の場合、end[i] の値は無視され、代わりに適切な次元の全範囲が使用されます。負の値は、インデックス作成が最後から開始されることを意味します。例えば、data=[1,2,3] の場合、end[0]=-1end[0]=3 を意味します。

  • 4: stride - ストライドを持つ T_IND タイプの 1D テンソル。オプション。

タイプ:

  • T: サポートされるタイプ。

  • T_IND: サポートされている整数タイプ。

例:

begin_mask & end_mask の使用例。

 <layer ... type="StridedSlice" ...>
     <data begin_mask="0,1,1" ellipsis_mask="0,0,0" end_mask="1,1,0" new_axis_mask="0,0,0" shrink_axis_mask="0,0,0"/>
     <input>
         <port id="0">
             <dim>2</dim>
             <dim>3</dim>
             <dim>4</dim>
         </port>
         <port id="1">
             <dim>2</dim> <!-- begin: [1, 0, 0] -->
         </port>
         <port id="2">
             <dim>2</dim> <!-- end: [0, 0, 2] -->
         </port>
         <port id="3">
             <dim>2</dim> <!-- stride: [1, 1, 1] -->
         </port>
     </input>
     <output>
         <port id="4">
             <dim>1</dim>
             <dim>3</dim>
             <dim>2</dim>
         </port>
     </output>
 </layer>

new_axis_mask の使用例。

 <layer ... type="StridedSlice" ...>
     <data begin_mask="0,1,1" ellipsis_mask="0,0,0" end_mask="0,1,1" new_axis_mask="1,0,0" shrink_axis_mask="0,0,0"/>
     <input>
         <port id="0">
             <dim>2</dim>
             <dim>3</dim>
             <dim>4</dim>
         </port>
         <port id="1">
             <dim>2</dim>
         </port>
         <port id="2">
             <dim>2</dim>
         </port>
         <port id="3">
             <dim>2</dim>
         </port>
     </input>
     <output>
         <port id="4">
             <dim>1</dim>
             <dim>2</dim>
             <dim>3</dim>
             <dim>4</dim>
         </port>
     </output>
 </layer>

shrink_axis_mask の使用例。

 <layer ... type="StridedSlice" ...>
     <data begin_mask="1,0,1,1,1" ellipsis_mask="0,0,0,0,0" end_mask="1,0,1,1,1" new_axis_mask="0,0,0,0,0" shrink_axis_mask="0,1,0,0,0"/>
     <input>
         <port id="0">
             <dim>1</dim>
             <dim>2</dim>
             <dim>384</dim>
             <dim>640</dim>
             <dim>8</dim>
         </port>
         <port id="1">
             <dim>5</dim>
         </port>
         <port id="2">
             <dim>5</dim>
         </port>
         <port id="3">
             <dim>5</dim>
         </port>
     </input>
     <output>
         <port id="4">
             <dim>1</dim>
             <dim>384</dim>
             <dim>640</dim>
             <dim>8</dim>
         </port>
     </output>
 </layer>