このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.math.cumsum

TensorFlow 1つのバージョン GitHubの上のソースを表示

計算テンソルの累積和xに沿ってaxis

たとえば、デフォルトでは、このオペレーションは、入力の最初の要素は、出力の最初の要素と同一であることを意味する包括CUMSUMを行います。

# tf.cumsum([a, b, c])   # [a, a + b, a + b + c]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([ 2,  6, 12, 20], dtype=int32)>
# using varying `axis` values
y = tf.constant([[2, 4, 6, 8], [1,3,5,7]])
tf.cumsum(y, axis=0)
<tf.Tensor: shape=(2, 4), dtype=int32, numpy=
array([[ 2,  4,  6,  8],
       [ 3,  7, 11, 15]], dtype=int32)>
tf.cumsum(y, axis=1)
<tf.Tensor: shape=(2, 4), dtype=int32, numpy=
array([[ 2,  6, 12, 20],
       [ 1,  4,  9, 16]], dtype=int32)>

設定することでexclusiveにkwarg True 、排他的CUMSUMが代わりに実行されます。

# tf.cumsum([a, b, c], exclusive=True)  => [0, a, a + b]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x, exclusive=True)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([ 0,  2,  6, 12], dtype=int32)>

設定することにより、 reverseにkwargをTrue 、CUMSUMは反対方向に行われます。

# tf.cumsum([a, b, c], reverse=True)  # [a + b + c, b + c, c]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x, reverse=True)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([20, 18, 14,  8], dtype=int32)>

これは、別の使用するよりも効率的であるtf.reverse OPSを。 reverseexclusive kwargsからも組み合わせることができます。

# tf.cumsum([a, b, c], exclusive=True, reverse=True)  # [b + c, c, 0]
x = tf.constant([2, 4, 6, 8])
tf.cumsum(x, exclusive=True, reverse=True)
<tf.Tensor: shape=(4,), dtype=int32,
numpy=array([18, 14,  8,  0], dtype=int32)>

x A Tensor 。 :次のいずれかのタイプでなければならないfloat32float64int64int32uint8uint16int16int8complex64complex128qint8quint8qint32half
axis A Tensor型のint32 (デフォルト:0)。範囲内でなければならない[-rank(x), rank(x))
exclusive 場合はTrue 、排他的CUMSUMを行います。
reverse bool (デフォルト:false)。
name 操作の名前(オプション)。

A Tensor 。同じ型を持つx