Maxima's Lab

[Python, Tensorflow] tensorflow.math (tf.reduce_max, tf.reduce_mean, tf.reduce_min, tf.reduce_prod, tf.reduce_sum) 본문

Python/Tensorflow

[Python, Tensorflow] tensorflow.math (tf.reduce_max, tf.reduce_mean, tf.reduce_min, tf.reduce_prod, tf.reduce_sum)

Minima 2022. 7. 10. 01:04
728x90
SMALL

오늘은 Tensorflow 내 Math 함수들에 대해서 알아보겠습니다.

tensorflow.math 내 사용해 볼 함수들은 다음과 같습니다.

 

 

  • tf.reduce_max(), tf.reduce_mean(), tf.reduce_min()
    : Tensor 내 특정 축(axis)를 기준으로 각각 최대값, 평균값, 최소값을 Tensor로 반환
  • tf.reduce_prod(), tf.reduce_sum()
    : Tensor 내 측정 축(axis)를 기준으로 각각 곱하는(더하는) 연산을 하여 Tensor로 반환

 

# tf.reduce_max(), tf.reduce_mean(), tf.reduce_min()

x = tf.constant([[1.0, 0.5, -5.0, 5.0], [0.5, 7.0, -3.0, -9.0]])

print(tf.reduce_max(x))
print(tf.reduce_max(x, axis=0))
print(tf.reduce_max(x, axis=1), '\n')

print(tf.reduce_mean(x))
print(tf.reduce_mean(x, axis=0))
print(tf.reduce_mean(x, axis=1), '\n')

print(tf.reduce_min(x))
print(tf.reduce_min(x, axis=0))
print(tf.reduce_min(x, axis=1), '\n')
tf.Tensor(7.0, shape=(), dtype=float32)
tf.Tensor([ 1.  7. -3.  5.], shape=(4,), dtype=float32)
tf.Tensor([5. 7.], shape=(2,), dtype=float32) 

tf.Tensor(-0.375, shape=(), dtype=float32)
tf.Tensor([ 0.75  3.75 -4.   -2.  ], shape=(4,), dtype=float32)
tf.Tensor([ 0.375 -1.125], shape=(2,), dtype=float32) 

tf.Tensor(-9.0, shape=(), dtype=float32)
tf.Tensor([ 0.5  0.5 -5.  -9. ], shape=(4,), dtype=float32)
tf.Tensor([-5. -9.], shape=(2,), dtype=float32) 

1개의 Tensor를 tf.reduce_max(), tf.reduce_mean(), tf.reduce_min() 함수를 적용하게 되면, Tensor 내 모든 성분들, 특정 축을 기준으로 최대값, 평균값, 최소값을 계산하여 Tensor로 반환하게 됩니다.

 

위의 사례에서는 1개의 축을 기준으로 함수들을 적용하였지만, 2개 이상의 축들에 대해서 적용하기 위해서는 axis = (0, 1)로 tuple의 형태로 적용하면 됩니다.


# tf.reduce_prod(), tf.reduce_sum()

x = tf.constant([[1.0, 0.5, -5.0, 5.0], [0.5, 7.0, -3.0, -9.0]])

print(tf.reduce_prod(x))
print(tf.reduce_prod(x, axis=0))
print(tf.reduce_prod(x, axis=1), '\n')

print(tf.reduce_sum(x))
print(tf.reduce_sum(x, axis=0))
print(tf.reduce_sum(x, axis=1))
tf.Tensor(-1181.25, shape=(), dtype=float32)
tf.Tensor([  0.5   3.5  15.  -45. ], shape=(4,), dtype=float32)
tf.Tensor([-12.5  94.5], shape=(2,), dtype=float32) 

tf.Tensor(-3.0, shape=(), dtype=float32)
tf.Tensor([ 1.5  7.5 -8.  -4. ], shape=(4,), dtype=float32)
tf.Tensor([ 1.5 -4.5], shape=(2,), dtype=float32)

1개의 Tensor를 tf.reduce_prod(), tf.reduce_sum() 함수를 적용하게 되면, Tensor 내 모든 성분들, 특정 축을 기준으로 곱하여(합하여) Tensor로 반환하게 됩니다. 위 함수들도 유사하게, 2개 이상의 축들에 대해서 적용하기 위해서는 axis=(0, 1)로 tuple의 형태로 적용하면 됩니다.

 

지금까지, Tensorflow 내 math 함수들 중 tf.reduce_max(), tf.reduce_mean(), tf.reduce_min(), tf.reduce_prod(), tf.reduce_sum()에 대해서 알아보았습니다.

728x90
LIST
Comments