テンソルのセグメントに沿って積を計算します。
セグメントの説明については、[セグメンテーションに関するセクション](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> | |
出力<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 の新しいインスタンス