본문 바로가기
Tensorflow

[Tensor] Constant

by ram_ 2023. 2. 24.

Tensor

  • Deeplearning framework는 기본적으로 Tensor를 다루는 도구이다.
  • Tensor를 다룰때 가장 중요한 것은 SHAPE이다.
    • 가장 에러가 많이 나는 이유이며, 헷갈리는 것이다. 함수의 설정값은 항상 확인해주어야 한다.
  • Tensor 데이터의 shape과 dtype은 수시로 체크하도록 한다.
    • 데이터 타입이 같아야 연산이 가능하다.

Constant

  • tf.constant()를 이용해 list와 tuple, array 형태 모두 Tensor로 변환 가능하다.
import numpy as np

arr = np.array([1., 2., 3.])
arr_ten = tf.constant(arr)

	-> <tf.Tensor: shape=(3,), dtype=float64, numpy=array([1., 2., 3.])>
tu_ten = tf.constant(((1,2,3), (1,2,3)), name = 'sample')

	-> <tf.Tensor: shape=(2, 3), dtype=int32, numpy=
array([[1, 2, 3],
       [1, 2, 3]], dtype=int32)>
  • numpy()  
  • .ndim
# Numpy array 추출. 유용하게 쓰인다
arr_ten.numpy(), type(arr_ten.numpy())

# lank 수 확인 가능한 .ndim
print(li_ten.ndim)
  • 데이터 타입 컨트롤 하는 방법
    • tf.cast 
# 미리 지정해주거나 
tensor = tf.constant([1,2,3], dtype=tf.float32)
tensor

# tf.cast를 사용, 다만 많은 경우 미리 데이터타입을 정리해둘 수 있다. 
tf.cast(tensor, dtype=tf.int16)

 


특정 값의 Tensor 생성

  • tf.ones
  • tf.zeros
  • tf.range

 


Random Value

  • 무작위 값을 생성할때 필요하다 
  • Noise를 재현한다거나, test를 한다거나 할 때 많이 사용된다.
  • 데이터 타입은 상수형태로 반환된다.
  • tf.random에 구현되어 있다.
    • tf.random.normal - Gaussian Normal Distribution
    • tf.random.uniform - Uniform Distribution
    • 등등 .. 아주 많다. tensor page 검색

 


Random Seed

  • Random value로 보통 가중치를 초기화한다.
  • 이외에도 학습 과정에서 Random value가 많이 사용된다.
  • 이를 관리 안해주면, 자신이 했던 작업이 동일하게 복구 또는 재현이 안된다.

→ 항상 Random seed를 고정해두고 개발한다!

(주의할 점은 해당 개발물에 사용되는 난수가 모두 Tensorflow에서 생성된 것이 아닐수도 있다는 점이다.)

'Tensorflow' 카테고리의 다른 글

[Tensor] 연산  (1) 2023.02.24
[Tensor] Variable  (0) 2023.02.24