일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- pytorch
- MariaDB
- Tkinter
- numpy
- 웹 프로그래밍
- FLASK
- 장고
- 데이터베이스
- 컴퓨터 비전
- Docker
- 그래픽 유저 인터페이스
- vue.js
- k8s
- 딥러닝
- 파이썬
- tensorflow
- yaml
- OpenCV
- POD
- Python
- Django
- GUI
- 파이토치
- 논문 리뷰
- Deep Learning
- 텐서플로우
- Computer Vision
- paper review
- Web Programming
- kubernetes
- Today
- Total
Maxima's Lab
[Python, Tensorflow] tensorflow.math (tf.abs, tf.add, tf.multiply, tf.argmax, tf.argmin) 본문
[Python, Tensorflow] tensorflow.math (tf.abs, tf.add, tf.multiply, tf.argmax, tf.argmin)
Minima 2022. 7. 10. 01:03오늘은 Tensorflow 내 Math 함수들에 대해서 알아보겠습니다.
tensorflow.math 내 사용해 볼 함수들은 다음과 같습니다.
- tf.abs() : Tensor 내 각 성분들의 절대값을 계산하여 Tensor로 반환
- tf.add() : 서로 다른 두 Tensor들의 각 성분들을 더하여 Tensor로 반환
- tf.multiply() : 서로 다른 두 Tensor들의 각 성분들을 곱하여 Tensor로 변환
- tf.argmax(), tf.argmin() : Tensor 내 특정 축(axis)를 기준으로 각각 최대값과 최소값의 인덱스들을 찾아 Tensor로 반환
# tf.abs()
import tensorflow as tf
x = tf.constant([-1.5])
print(tf.abs(x))
tf.Tensor([1.5], shape=(1,), dtype=float32)
1개의 Tensor를 tf.abs() 함수를 적용하면, Tensor 내 모든 성분들을 절대값 함수를 취해 동일한 shape의 Tensor로 반환합니다.
# tf.add() -1
import tensorflow as tf
x = tf.constant([1.0])
y = tf.constant([3.0])
print(tf.add(x, y))
tf.Tensor([4.], shape=(1,), dtype=float32)
서로 다른 2개의 Tensor들을 tf.add() 함수를 적용하면 각 성분들을 더하여 동일한 shape의 Tensor로 반환합니다.
다음은 shape이 서로 다른 2개의 Tensor들에 대해 tf.add() 함수를 적용한 결과입니다.
# tf.add() -2
import tensorflow as tf
x = tf.constant([1.0])
y = tf.constant([3.0, -1.0])
print(tf.add(x, y))
tf.Tensor([4. 0.], shape=(2,), dtype=float32)
위의 사례처럼, shape이 다른 Tensor들 간의 tf.add() 연산을 적용할 때에는 특정 축(axis)의 Length가 적은 Tensor를 복사하여 동일한 shape의 Tensor로 만들어 tf.add() 연산을 적용하게 됩니다.
# tf.multiply() -1
import tensorflow as tf
x = tf.constant([[1.0, -2.0], [0.0, 3.0]])
y = tf.constant([[3.0, 5.0], [-2.0, 1.0]])
print(tf.multiply(x, y))
tf.Tensor(
[[ 3. -10.]
[ -0. 3.]], shape=(2, 2), dtype=float32)
서로 다른 2개의 Tensor들을 tf.multiply() 함수를 적용하면, 각 성분들을 곱하여 동일한 shape의 Tensor로 반환합니다.
다음은 shape이 서로 다른 Tensor들 간의 tf.multiply() 함수를 적용한 결과입니다.
# tf.multiply() -2
import tensorflow as tf
x = tf.constant([[1.0, -2.0], [0.0, 3.0]])
y = tf.constant([[3.0, 5.0]])
print(tf.multiply(x, y))
tf.Tensor(
[[ 3. -10.]
[ 0. 15.]], shape=(2, 2), dtype=float32)
# tf.multiply() -3
import tensorflow as tf
x = tf.constant([[1.0, -2.0], [0.0, 3.0]])
y = tf.constant([[1.0], [5.0]])
print(tf.multiply(x, y))
tf.Tensor(
[[ 1. -2.]
[ 0. 15.]], shape=(2, 2), dtype=float32)
tf.add() 연산과 유사하게, 특정 축(axis)의 Length 적은 Tensor를 기준을 복사하여 나머지 Tensor의 shape가 동일한 형태로 tf.multiply() 함수를 적용하게 됩니다.
# tf.argmax(), tf.argmin()
import tensorflow as tf
x = tf.constant([[1.0, 0.5, -5.0, 5.0], [0.5, 7.0, -3.0, -9.0]])
print(tf.argmax(x, 0))
print(tf.argmin(x, 0), '\n')
print(tf.argmax(x, 1))
print(tf.argmin(x, 1))
tf.Tensor([0 1 1 0], shape=(4,), dtype=int64)
tf.Tensor([1 0 0 1], shape=(4,), dtype=int64)
tf.Tensor([3 1], shape=(2,), dtype=int64)
tf.Tensor([2 3], shape=(2,), dtype=int64)
1개의 Tensor를 tf.argmax(), tf.argmin() 함수를 적용하게 되면 해당 Tensor의 축(axis = 0, 1, ...)를 기준으로 최대값을 가지는 인덱스(index)를 찾아 Tensor로 반환하게 됩니다.
지금까지, Tensorflow 내 math 함수들 중 tf.abs(), tf.add(), tf.multiply(), tf.argmax(), tf.argmin()에 대해서 알아보았습니다.