골빈해커의 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분 딥러닝(저자:김진중)
'DeepLearning' 카테고리의 다른 글
Deep Learning | Learning Model 재사용 & 텐서보드 사용 (0) | 2021.06.30 |
---|---|
Computer Vision Summary | 컴퓨터 비전 총정리 -2 (0) | 2021.06.30 |
Computer Vision Summary | 컴퓨터 비전 총정리 -1 (0) | 2021.06.29 |
Deep Learning | 기본 인공 신경망 구현 (0) | 2021.06.24 |
Deep Learning | Linear regression(선형 회귀 모델 구현) (0) | 2021.06.17 |
댓글