- Today
- Total
엔지니어스 - Engineeus
[Windows] 텐서플로우(Tensorflow) 배워볼까? - 기본 그래프 구현 [2] 본문
[Windows] 텐서플로우(Tensorflow) 배워볼까? - 기본 그래프 구현 [2]
Engineeus 2020. 3. 8. 14:11저번 시간에는 텐서플로우의 기초 개념에 대해 익혔습니다.
https://mickael-k.tistory.com/80
본 시간에는 코드를 사용하여 기본 그래프를 그려 보겠습니다.
(텐서플로우 설치는 여기, 주피터노트북 설치는 여기 제 포스트를 참조 하시면 됩니다.)
기본 그래프 코딩
아래와 같은 그래프를 코딩 해서 output이 일치 하는지 알아보겠습니다.
기존 포스트에서 배운것과 같이 동그라미는 노드(node), 화살표는 엣지(edge)라고 했습니다. 이 노드는 또한 오퍼레이션(Operation, OP)라고도 합니다.
이 그래프의 코딩은 아래와 같이 합니다.
일단 결과값은 7이 잘 나오네요. 그럼 이제 각 세션을 해석 해 봅시다.
코드 리뷰
1. 라이브러리 import
import tensorflow as tf
위 글은 tenforflow라이브러리를 불러와서 너무 기니 tf라고 정의 하겠다고 하는 말 입니다.
원래 사용 시에 tensorflor.xxx 이렇게 사용 해야 하는데 너무 기니 tf.xxx 이렇게 사용 할 수 있어 편하죠.
2. 노드 생성 - 상수 생성
a = tf.constant(5, name="input_a") b = tf.constant(3, name="input_b")
앞에서 input이 안변하는 상수니 이걸 노드에 넣어 주는 역할을 합니다.
5, 3은 들어간 숫자이며 이름은 아무렇게나 정하지만 직관적으로 이해 되도록 정하는게 좋습니다.
3. 노드 생성 - 계산 함수 생성
c = tf.multiply(a, b, name="mul_c") d = tf.add(a, b, name="add_d") e = tf.subtract(c, d, name="minus_e")
위의 c에서 multiply를 통해 a와 b를 곱합니다.
d에서는 add함수를 통해 a, b를 더합니다.
최종 e에서는 subtract 함수를 통해 c와 d를 뺍니다.
4. 함수 실행
위 2와 3번에서는 그래프 생성에서는 함수를 생성 하기만 하였지 가동을 시키지 않았습니다.
여기서 Session이라는 함수를 sess라고 명명하고 이 안에 있는 run이라는 함수로 e를 최종 실행 합니다.
이넨 tf.Session.run(e)와 같은 말 입니다.
sess = tf.Session() sess.run(e)
5. Session 닫기
sess.close()
열어 준 세션은 닫아 줍니다. 기술적으로는, session 객체는 프로그램이 종료되면 자동으로 닫히지만 명시적으로 session을 닫아주는 것이 좋습니다.
다음 포스트 에서는 텐서(tensor)와 넘파이(NumPy)를 배워보겠습니다.
https://mickael-k.tistory.com/84
'Autonomous Tech. > Machine Learning' 카테고리의 다른 글
NMS(Non-maximum Suppression) 이란? IOU부터 알자 (0) | 2021.01.18 |
---|---|
Objectness란? (=Confidence threshold) (0) | 2021.01.13 |
텐서플로우(Tensorflow) 배워볼까? - 기초 개념 [1] (0) | 2020.03.08 |
[Windows] 텐서플로우(Tensorflow) 사용 딥러닝 신경망 구현 - RNN 1편 [9] (0) | 2020.03.08 |
[Windows] 텐서플로우(Tensorflow) 딥러닝 신경망 구현 - 네트워크 생성 [2] (0) | 2020.03.08 |