텐서 선언하기
a = tf.constant(2) # 텐서를 선언합니다.
print(tf.rank(a)) # 텐서의 랭크를 계산합니다.
b = tf.constant([1, 2])
print(tf.rank(b))
c = tf.constant([[1, 2], [3, 4]])
print(tf.rank(c))
결과
tf.Tensor(0, shape=(), dtype=int32)
tf.Tensor(1, shape=(), dtype=int32)
tf.Tensor(2, shape=(), dtype=int32)
즉시 실행모드를 통한 연산
- 텐서플로우 1.x에서는 계산 그래프를 선언, 초기화 뒤 세션을 통해 값을 흐르게 하는 등의 많은 작업을 필요.
- 2.x의 버전에서는 텐서를 복잡한 과정 없이 파이썬처럼 사용할 수 있음.
a = tf.constant(3)
b = tf.constant(2)
print(tf.add(a, b)) # 더하기
print(tf.subtract(a, b)) # 빼기
print(tf.multiply(a, b).numpy()) # 곱하기
print(tf.divide(a, b).numpy()) # 나누기
결과
tf.Tensor(5, shape=(), dtype=int32)
tf.Tensor(1, shape=(), dtype=int32)
6
1.5
tensor → numpy → tensor
c = tf.add(a, b).numpy() # a와 b를 더한 후 NumPy 배열 형태로 변환합니다.
c_square = np.square(c, dtype = np.float32) # NumPy 모듈에 존재하는 square 함수를 적용합니다.
c_tensor = tf.convert_to_tensor(c_square) # 다시 텐서로 변환해줍니다.
# 넘파이 배열과 텐서 각각을 확인하기 위해 출력합니다.
print('numpy array : %0.1f, applying square with numpy : %0.1f, convert_to_tensor : %0.1f' % (c, c_square, c_tensor))
결과
numpy array : 5.0, applying square with numpy : 25.0, convert_to_tensor : 25.0
@tf.function
- 자동으로 그래프를 생성
import tensorflow as tf
@tf.function
def square_pos(x):
if x > 0:
x = x * x
else:
x = x * -1
return x
print(square_pos(tf.constant(2)))
print(square_pos)
def square_pos(x):
if x > 0:
x = x * x
else:
x = x * -1
return x
print(square_pos(tf.constant(2)))
print(square_pos)
결과
tf.Tensor(4, shape=(), dtype=int32)
<tensorflow.python.eager.def_function.Function object at 0x0000028E7FEB32B0>
tf.Tensor(4, shape=(), dtype=int32)
<function square_pos at 0x0000028E3AAD89D8>
- 위는
tensorflow.python...
으로 시작하며, 아래는function square ...
로 진행된다. - 사칙연산 등의 간단한 함수에서
@tf.function
을 사용한다면 상당한 처리속도 증가를 경험할 수 있다. 복잡한 신경망일수록 그 효과는 줄어든다.
'Python > Python 딥러닝' 카테고리의 다른 글
Keras에서 개발 과정, 활성화함수, 옵티마이저, 손실함수, 평가지표란? (0) | 2020.07.13 |
---|---|
파이썬_확률적 경사 하강법-SGD(Stochastic Gradient Descent) (1) | 2020.07.13 |
Tensorflow의 기본 개념 : Tensor, Rank, Flow, Graph, Node, Edge, Session (0) | 2020.07.10 |
유용한 Datasets를 얻을수 있는 사이트들 (0) | 2020.07.10 |
[딥러닝용어-평가] 혼동행렬 정확도 정밀도 재현율 F1스코어 특이도 ROC곡선 (0) | 2020.07.10 |