본문 바로가기
DeepLearning

Deep Learning & Tensorflow 사용 기초 1.

by daewooki 2021. 6. 17.
반응형

골빈해커의 3분 딥러닝 텐서플로맛 교재와 함께 강의를 듣게 되었다.

우연히 교수님께서 책 저자인 김진중님을 모시고 와주셨고,

김진중님께 대략 두시간 정도 강의를 들었다. 

 

원래는 야놀자 전략기술연구소장이셨고, 지금은 네이버  CLOVA에 계신다고했다. (블로그 폐쇄 후 다시 쓰느라 3년전 기준..)

2시간 정도 딥러닝을 처음 접하는데 쉽게 설명을 해주셨고, 

이제 처음부터 책과 함께 쭉 따라가 보려고한다.

 

 

딥러닝과 텐서플로우

 

 

(MAC OS X 환경에서  python 3.6, tensorflow 1.2  버전 설치 후 실행하였습니다. )

 

 

텐서플로우를 사용하기 위해 텐서플로 라이브러리를 임포트한다. 

 

$ import tensor flow as tf

 

 

tf.constant 로 문자열 ‘Hello, TensorFlow!’ 를  hello 변수에 저장.

 

 

 

hello = tf.constant(‘Hello, TensorFlow!’)

print(hello)

 

 

 

이렇게 코드를 짜고 실행하면  결과는  사진과 같다. 

 

예상과 다르게.

 

Tensor(“Const:0”, shape=(), dtype=string)

 

이라고 나오게된다. 

 

출력결과 = hello는 텐서플로의 Tensor라는 자료형이고, 상수를 담고 있음을 의미하는것이다.  dtype = stinrg, float , int, etc.

 

 

 

Tensor란?

 

 

 = > 텐서플로우에서 다양한 수학식을 계산하기 위한 자료형,  연산 graph에 있는 작업들 간에는 tensor로만 주고받을 수 있다. 

tensor는 정적인 타입(static the), 차원(rank - 차원의 수 — 0 /스칼라, 1/벡터, 2/행렬, 3^/ n-tensor,n차원 텐서), 셰이프(shape-차원의 요소 개수)

 

 

ex ) 

 

3 # rank - 0 / shape - []

[1. ,2., 3.] # rank - 1 / shape - [3]

[[1., 2., 3.],[4., 5., 6.]] # rank - 2 / shape - [2, 3]

[[[1., 2., 3.]], [[7., 8., 9.]]] # rank - 3 / shape - [2, 1, 3]

 

 

# 덧셈 연산 

 

a = tf.constant(10)

b = tf.constatnt(20)

c = tf.add(a,b)

print(c) 

 

 

사진처럼 결과가 나온다. 예상대로 30이 나오는 것이 아니라 위의 결과처럼 나온다. 

이 이유는 텐서플로우 프로그램의 구조가 다음의 두가지로 분리되었기 때문이다.

 

 

1. 그래프 생성.

2. 그래프 실행.

 

 

그래프란 ?

 

tensor들의 연산 모음. tensor와 tensor의 연산을 먼저 정의해 그래프를 생성 후, 필요할 때 실행 코드를 넣어 실제 연산을 수행한다. 

이러한 방식은 지연 실행이라고 한다. 따라서 모델 구성과 실행을 분리해 프로그램을 깔끔하게 작성할 수 있다. 

 

그래프의 실행은 Session 안에서 이루어져야 한다. 

 

$ sess = tf.Session()

 

print(sess.run(hello))

print(sess.run([a,b,c]))

 

sess.close()

다음과 같이 출력 되는 것을 확인할 수 있다. 

 

 

출처 : 골빈해커의 3분 딥러닝(저자:김진중)

반응형

댓글