SegmentProdV2

パブリック最終クラスSegmentProdV2

テンソルのセグメントに沿って積を計算します。

セグメントの説明については、[セグメンテーションに関するセクション](https://tensorflow.org/api_docs/python/tf/math#Segmentation) を参照してください。

\\(output_i = \prod_j data_j\\) のようなテンソルを計算します。ここで、積は `segment_ids[j] == i` となるように `j` 上にあります。

指定されたセグメント ID `i` の積が空の場合、`output[i] = 1` になります。

注: この操作は現在 jit_compile=True でのみサポートされています。

SegmentProd との唯一の違いは、追加の入力 `num_segments` です。これは、コンパイル時に出力形状を評価するのに役立ちます。 「num_segments」はsegment_idsと一致している必要があります。たとえば、Max(segment_ids) - 1 は、1 次元のsegment_ids の `num_segments` と等しくなければなりません。 num_segments が一貫していない場合でも、操作は実行されます。唯一の違いは、segment_id と data のサイズに関係なく、出力が num_segments のサイズを取ることです。 num_segments が予想される出力サイズより小さい場合、最後の要素は num_segments が予想される出力サイズを超える場合に無視され、最後の要素には 1 が割り当てられます。

例えば:

>>> @tf.function(jit_compile=True) ... def test(c): ... return tf.raw_ops.SegmentProdV2(data=c,segment_ids=tf.constant([0, 0, 1]), num_segments=2) >>> c = tf.constant([[1,2,3,4], [4, 3, 2, 1], [5,6,7,8]]) >>> test( c).numpy() array([[4, 6, 6, 4], [5, 6, 7, 8]], dtype=int32)

パブリックメソッド

出力<T>
asOutput ()
テンソルのシンボリック ハンドルを返します。
static <T, U は数値を拡張、V は数値を拡張> SegmentProdV2 <T>
create (スコープscope、オペランド<T>データ、オペランド<U>segmentIds、オペランド<V>numSegments)
新しい SegmentProdV2 オペレーションをラップするクラスを作成するためのファクトリ メソッド。
出力<T>
出力()
最初の `segment_ids.rank` 次元を除き、データと同じ形状を持ち、サイズ `num_segments` を持つ単一の次元に置き換えられます。

継承されたメソッド

パブリックメソッド

public Output <T> asOutput ()

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

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

public static SegmentProdV2 <T> create (スコープスコープ、オペランド<T> データ、オペランド<U> セグメント ID、オペランド<V> numSegments)

新しい SegmentProdV2 オペレーションをラップするクラスを作成するためのファクトリ メソッド。

パラメーター
範囲現在のスコープ
セグメントIDサイズが「data」の最初の次元のサイズと等しい 1 次元テンソル。値は並べ替える必要があり、繰り返すことができます。値は「num_segments」未満である必要があります。

注意: 値は常に CPU 上で並べ替えられるように検証されますが、GPU 上では検証されません。

戻り値
  • SegmentProdV2 の新しいインスタンス

public出力<T>出力()

最初の `segment_ids.rank` 次元を除き、データと同じ形状を持ち、サイズ `num_segments` を持つ単一の次元に置き換えられます。