스터디/AI

[TensorFlow] 텐서플로우 2.0 소개

_leezoee_ 2023. 1. 19. 15:01

 

Udemy에 TensorFlow 유료강의를 기반으로 공부해본 내용을 정리한 글이다.

 

텐서플로우 1.0 에서 2.0으로 넘어오면서 큰 차이는 상수와 변수에 대한 차이가 있다.

 

 

1. 상수,변수 값의 정의

 

텐서플로우 1.0에서는

tensor = tf.constant([[23,4], [32,51])

이런식으로 텐서플로우에서 가져온 constant 함수를 사용한다.

일반적으로 텐서라는 명을 사용한다. 

대괄호가 두 개로 2열2행의 2차원 텐서로 정의된다.

tf.constant를 정의한 뒤 불러와보면

tessor
#<tf.Tensor 'Const:0' shape=(2,2) dtype=int32>

이런식으로 값이 아니라 형태만 확인 할 수 있다.

텐서플로우 1.0에서는 값을 가져올때 eval() 함수를 사용하는데, 상수나 변수 값에 접근하고싶으면 그 전에 먼저 세션을 초기화 등록해야하는 절차가 필요하다.

세션을 초기화 하지 않고 값을 불러오는 eval() 사용 시 No default session is registered 라는 에러가 발생한다.

 

->

 

텐서플로우 2.0으로 넘어가면서 상수나 변수 값을 가져오는 방법이 훨씬 더 간단해졌는데,

#상수 값 정의
tensor_20 = tf.constant([[23,4] , [32,5]])
tensor
#그냥 tensor 로만 적어도 아래처럼 값 까지 나옴
#<tf.Tensor:id=0, shape=(2,2) dtype=int32, numpy=
# array([[23,4], [32,5]], dtype=int32)>

형태만 출력하려면 tenfor_20.shape 출력, 값만 가져오려면 tensor_20.numpy()로 출력 하면 된다.

 

상수는 값을 바꿀 수 없기 때문에 변수에서만 사용하는 툴

#변수 정의
tf2_variable = tf.Variable([[1., 2., 3.] , [4., 5., 6.]])
tf2_variable

#assign : variable 클래스에서 사용할 수 있는 함수로, 변수 내 값을 바꾸고자 할 때 사용
tf2_variable[0,2].assign(100)

 

2. Tensorflow2.0 유용 툴

 

np.square(tensor) : 셀의 제곱 구하기

np.sqrt(tensor) : 셀의 제곱근 구하기

np.dot(tensor, tensor_20) : 두 행렬 곱 연산

 

+행렬곱 짚고가기

:앞의 행렬의 행과 뒤의 행렬의 열을 연산, "앞 행렬의 행의 성분 개수" 와 "뒤 행렬의 열의 성분 개수"가 같아야함

출처 : Speros's blog

 

 

3. Tensorflow 문자열

 

tf_string = tf.constant("TensorFlow")
tf.strings.length(tf_string) #스트링 길이 확인
tf.strings.unicode_decode(tf_string , "UTF8") #다른형식으로 해독하는 디코딩 연산, 자연어처리에서 많이 이용