기본적으로 알아야 할 Tensorflow(텐서플로)의 기본

2020. 8. 6. 00:35딥러닝

1. 그래프 만들기

import tensorflow as tf

 

import tensorflow as tf를 통해 텐서플로를 import하게 되면

그 시점에 비어 있는 기본 그래프가 만들어지며, 우리가 만드는 모든 노드들은 이 기본 그래프에 자동으로 연결된다.

 

즉, 위의 명령어를 통해 우리는 텐서플로우가 만들어주는 빈 그래프을 얻게 되구 우리가 만드는 노드들이 그래프안에서 연결된다. 

 

<노드 만들기>

a= tf.constant(3)  // a라는 노드의 값이 '3'이라는 뜻이다.
b= tf.constant(4)  // b라는 노드의 값이 '4'이라는 뜻이다.

또한 만든 노드를 가지구 기본적인 연산이 가능하다.



정의한 노드 및 연산 그래프를 실행하려면 아래의 코드 처럼 세션(Session)을 만들고 실행하면 된다.

import tensorflow as tf
  ​
  # 노드 및 연산 그래프 정의
  a = tf.constant(5)
  b = tf.constant(2)
  c = tf.constant(3)
  ​
  d = tf.multiply(a, b)  # a * b
  e = tf.add(c, b)  # c + b
  f = tf.subtract(d, e)  # d - e
  ​
  # 세션을 만들고 연산그래프 실행
  sess = tf.Session()
  outs = sess.run(f)
  sess.close()
  print("outs = {}".format(outs))


출처: https://excelsior-cjh.tistory.com/151 [EXCELSIOR]

먼저, tf.Session()에서 그래프를 시작한다.

텐서플로우는 노드들이 연결된 그래프라고 생각하면 좋다. (그래프를 시작한다-> 텐서플로우를 시작한다.)

Session객체는 파이썬 객체와 데이터, 객체의 메모리가 할당되어 있는 실행 환경 사이를 연결하며, 중간 결과를 저장하고 최종 결과를 작업 환경으로 보내준다. 위의 코드에서는 Session 객체를 sess = tf.Session()에 정의했다.

연산 그래프를 실행하려면 Session객체의 run() 메소드를 사용해야한다. 위의 코드에서 sess.run(f)는 아래의 그림처럼 출력이 나와야 하는 f노드에서 시작해서 역방향으로 의존관계에 따라 노드의 연산을 수행한다.



출처: https://excelsior-cjh.tistory.com/151 [EXCELSIOR]