警告:このAPIは非推奨であり、置き換えが安定した後 TensorFlowの将来のバージョンで削除される予定です。

StridedSlice

パブリックファイナルクラスStridedSlice

`input`からストライドスライスを返します。

ほとんどのPythonユーザーは、この操作を直接使用するのではなく、Pythonの `Tensor .__ getitem__`または` Variable .__ getitem__`を使用することをお勧めします。

この操作の目的は、 `n`次元の` input`テンソルからの要素のサブセットを使用して新しいテンソルを生成することです。サブセットは、この関数の引数にエンコードされた一連の `m`スパース範囲仕様を使用して選択されます。 `m`が` n`と等しい場合もありますが、そうである必要はありません。各範囲指定エントリは、次のいずれかになります。

-省略記号(...)。省略記号は、全次元選択の0個以上の次元を意味するために使用され、 `ellipsis_mask`を使用して生成されます。たとえば、 `foo [...]`はIDスライスです。

-新しい軸。これは、新しいshape = 1次元を挿入するために使用され、 `new_axis_mask`を使用して生成されます。たとえば、 `foo [:、...]`ここで `foo`は形状`(3、4) `であり、`(1、3、4) `テンソルを生成します。

-範囲 `begin:end:stride`。これは、特定のディメンションから選択する量を指定するために使用されます。 `stride`は0以外の任意の整数にすることができます。`begin`は最初に選択する値のインデックスを表す整数であり、` end`は最後に選択する値のインデックスを表します。各次元で選択される値の数は、「ストライド> 0」の場合は「終了-開始」、「ストライド<0」の場合は「開始-終了」です。 `begin`と` end`は負の値にすることができます。ここで、 `-1`は最後の要素、` -2`は最後から2番目の要素です。 `begin_mask`は、明示的に指定された` begin`を `stride> 0`の場合は` 0`の暗黙の有効値に、 `stride <0`の場合は` -1`に置き換えるかどうかを制御します。 `end_mask`は類似していますが、最大のオープン間隔を作成するために必要な数を生成します。たとえば、形状 `(3、)`テンソル `foo [:]`が与えられた場合、有効な `begin`と` end`は `0`と` 3`です。これが、有効な「begin」と「end」が「0」と「2」である「foo [0:-1]」と同等であると想定しないでください。別の例は `foo [-2 ::-1]`で、テンソルの最初の次元を反転させ、最後の2つを(元の順序の要素で)削除します。たとえば、 `foo = [1,2,3,4]; foo [-2 ::-1] `は` [4,3] `です。

-単一のインデックス。これは、特定のインデックスを持つ要素のみを保持するために使用されます。たとえば、形状 `(5,6)`テンソルの `foo [2、:]`は、形状 `(6、)`テンソルを生成します。これは、 `begin`、` end`、および `shrink_axis_mask`でエンコードされます。

各概念範囲の指定は、opの引数にエンコードされます。このエンコーディングは、重要な例を検討することで最もよく理解できます。特に、 `foo [1、2:4、None、...、:-3:-1、:]`は

begin = [1, 2, x, x, 0, x] # x denotes don't care (usually 0)
 end = [2, 4, x, x, -3, x]
 strides = [1, 1, x, x, -1, 1]
 begin_mask = 1<<4 | 1<<5 = 48
 end_mask = 1<<5 = 32
 ellipsis_mask = 1<<3 = 8
 new_axis_mask = 1<<2 = 4
 shrink_axis_mask = 1<<0 = 1
 
としてエンコードされます。この場合、 `foo.shape`が(5、5、5、 5、5、5)スライスの最終的な形状は(2、1、5、5、2、5)になります。各引数の仕様を段階的に見ていきましょう。

1.サンプルスライスの最初の引数は、「begin = 1」および「end = begin + 1 = 2」に変換されます。元の仕様「2:4」から明確にするために、「shrink_axis_mask」にも適切なビットを設定します。

2. `2:4`は、開始、終了、およびストライドに2、4、1を提供します。すべてのマスクにはゼロビットが寄与しています。

3.Noneは `tf.newaxis`の同義語です。これは、サイズ1の寸法の寸法を最終的な形状に挿入することを意味します。 new_axis_maskビットが設定されている間、ダミー値は開始、終了、およびストライドに提供されます。

4. `...`は、入力形状のすべての次元のスライスを完全に指定するために、必要な数の次元から全範囲を取得します。

5. `:-3:-1`は、負のインデックスの使用を示しています。形状が `s`の次元に関連付けられた負のインデックス` i`は、正のインデックス `s + i`に変換されます。したがって、 `-1`は` s-1`(つまり最後の要素)になります。この変換は内部で行われるため、開始、終了、およびストライドはx、-3、および-1を受け取ります。適切なbegin_maskビットが設定され、開始範囲が全範囲であることを示します(xは無視されます)。

6. `:`は、対応するディメンションのコンテンツ全体が選択されていることを示します。これは、 `::`または `0 ::: 1`と同等です。開始、終了、およびストライドは、それぞれ0、0、および1を受け取ります。 `begin_mask`と` end_mask`の適切なビットも設定されます。

要件: `0!= strides [i] for i in [0、m)` `ellipsis_maskは2の累乗でなければなりません(1つの省略記号のみ)`

ネストされたクラス

クラスStridedSlice.Options StridedSliceオプションの属性

パブリックメソッド

出力<T>
asOutput ()
テンソルのシンボリックハンドルを返します。
静的StridedSlice.Options
beginMask (長いbeginMask)
static <T、U extends Number> StridedSlice <T>
createスコープスコープ、オペランド<T>入力、オペランド<U>開始、オペランド<U>終了、オペランド<U>ストライド、オプション...オプション)
新しいStridedSlice操作をラップするクラスを作成するファクトリメソッド。
静的StridedSlice.Options
ellipsisMask (長いellipsisMask)
静的StridedSlice.Options
endMask (ロングエンドマスク)
静的StridedSlice.Options
newAxisMask (長いnewAxisMask)
出力<T>
出力()
静的StridedSlice.Options
シュリンクアクシスマスク(ロングシュリンクアクシスマスク)

継承されたメソッド

パブリックメソッド

public Output <T> asOutput ()

テンソルのシンボリックハンドルを返します。

TensorFlow操作への入力は、別のTensorFlow操作の出力です。このメソッドは、入力の計算を表すシンボリックハンドルを取得するために使用されます。

public static StridedSlice.Options beginMask (Long beginMask)

パラメーター
beginMaskビットiが1であるビットマスクは、開始値を無視し、代わりに可能な最大の間隔を使用することを意味します。実行時に、begin [i]は `stride [i]> 0`の場合は` [0、n-1) `に、` stride [i] <0`の場合は `[-1、n-1]`に置き換えられます。

public static StridedSlice <T> create スコープスコープ、オペランド<T>入力、オペランド<U>開始、オペランド<U>終了、オペランド<U>ストライド、オプション...オプション)

新しいStridedSlice操作をラップするクラスを作成するファクトリメソッド。

パラメーター
範囲現在のスコープ
ベギン`begin [k]`は、 `k`番目の範囲指定へのオフセットを指定します。これが対応する正確な寸法は、コンテキストによって決定されます。範囲外の値はサイレントにクランプされます。 `begin_mask`の` k`番目のビットの場合、 `begin [k]`は無視され、代わりに適切な次元の全範囲が使用されます。負の値を指定すると、インデックスは最も高い要素から開始されます。たとえば、 `foo == [1,2,3]`の場合、 `foo [-1] == 3`になります。
終わり`end [i]`は、 `end_mask`が全範囲を決定するために使用されることを除いて、` begin`に似ています。
歩幅`strides [i]`は、指定された要素を抽出した後の `i`番目の仕様の増分を指定します。負のインデックスは元の順序を逆にします。範囲外または範囲の値は、slice [i]> 0`の場合は `[0、dim [i])に、slice [i] <0`の場合は` [-1、dim [i] -1]にクランプされます。
オプションオプションの属性値を運ぶ
戻り値
  • StridedSliceの新しいインスタンス

public static StridedSlice.Options ellipsisMask (Long ellipsisMask)

パラメーター
ellipsisMaskビット `i`が1であるビットマスクは、` i`番目の位置が実際には省略記号であることを意味します。最大で1ビットは1です。`ellipsis_mask== 0`の場合、 `1 <<(m + 1)`の暗黙の省略記号マスクが提供されます。これは、 `foo [3:5] == foo [3:5、...]`を意味します。省略記号は、すべての次元のスライスされた範囲を完全に指定するために必要な数の範囲指定を暗黙的に作成します。たとえば、4次元テンソル `foo`の場合、スライス` foo [2、...、5:8] `は` foo [2、:、:、5:8] `を意味します。

public static StridedSlice.Options endMask (Long endMask)

パラメーター
endMask `begin_mask`に類似

public static StridedSlice.Options newAxisMask (Long newAxisMask)

パラメーター
newAxisMaskビット `i`が1であるビットマスクは、` i`番目の仕様が新しい形状1次元を作成することを意味します。たとえば、 `foo [:4、tf.newaxis、:2]`は、形状 `(4、1、2)`テンソルを生成します。

public Output <T> output ()

パブリック静的StridedSlice.Options shrinkAxisMask(ロングshrinkAxisMask)

パラメーター
シュリンクアクシスマスクビット `i`が、` i`番目の仕様が次元を縮小する必要があることを意味するビットマスク。 beginとendは、ディメンションのサイズ1のスライスを意味する必要があります。たとえば、Pythonでは、 `foo [:、3、:]`を実行すると、 `shrink_axis_mask`が2になります。