Data Science/Tensorflow2.0, Pytorch

1. Tensorflow 2.0 기초 사용법

HJChung 2020. 3. 25. 19:24

1. Tensor 생성

Tensor 클래스로 구현된 tensor 자료형은 NumPy의 다차원 배열 ndarray 클래스와 마찬가지로, 다차원 배열 정보를 다루기 위한 자료형 입니다.  차이점은

  • 텐서 자료형은 NumPy와 달리 심볼 연산이 가능한 객체이다.
  • 텐서 자료형은 값을 처음부터 저장하는 것이 아니라 연산이 시작되는 시점에 참조 자료로부터 가지고 온다.

출처: https://datascienceschool.net/view-notebook/f818e16082c841a28c0ef5ea896fb39b/

 

먼저 Tensor를 생성하는 방법을 알아봅니다. 

1) .constant사용하면 파이썬 리스트나 NumPy 배열을 상수 Tensor로 만들 수 있습니다.

tf.constant([1, 2, 3]) #파이썬 리스트를 상수 텐서로 만들기
tf.constant((1, 2, 3)) #파이썬 튜플을 상수 텐서로 만들기

arr = np.array([1, 2, 3])
tf.constant(arr) #넘파이 배열을 상수 텐서로 만들기 대부분 이 형태로 쓰입니다. 


#보통은 파이썬이 알아서 데이터타임을 판단하지만 확실히 하고 싶거나 데이터 타입에 혼돈을 막고자 한다면, 직접 넣어주는 것도 가능하다. 
tf.constant([1, 2, 3], dtype = tf.float32)

 

2) 난수로 구성된 Tensor 생성도 만들 수 있습니다. 

#numpy에서는 normal distribution이 기본적으로 실행된다 그러나
#tensor에서는 normal distribution과 uniform distribution으로 나눠진다.

##numpy에서의 난수 생성

###numpy에서는 normal distribution이 기본적으로 실행된다 그러나

np.random.randn(9) # 0<= ~ <9

        
##tensor에서의 난수 생성
###normal distribution

	tf.random.normal([3, 3])

###uniform distribution
	tf.random.uniform([4, 4])

 

2. Tensor에 담긴 정보 확인

1) Tensord의 shape 확인

tensor.shape

2) Tensor의 datatype 확인

tensor.dtype

3) Tensor의 datatype 변경

: tf.cast(타입 바꾸고 싶은 텐서, dtype = 바꾸고 싶은 데이터 타입) 함수 사용

tf.cast(tensor, dtype = tf.uint8)

3. Tensor에서 Numpy 불러오기

Tensor.numpy() 사용

tensor.numpy() #이렇게 하면 tensor로 바뀌었던 numpy가 변환된다.