공부정리/모두를 위한 딥러닝 (강의 정리)

*Tensorflow (기본적인 operations)

sillon 2022. 4. 7. 01:27
728x90
반응형

이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다.

 

*해당 포스트는 텐서플로우 1.0.0 버전으로 작성된 소스코드입니다.

2.0.0 부터는 Session()이 사용되지 않음

*Tensorflow (기본적인 operations)

 

import tensorflow as tf #ensorflow 를 import 하여 tf라는 이름으로 사용하기로 했다.

hello = tf.constant("Hello, TensorFlow!") 
'''tf.constant라는 함수를 호출하여 "Hello, TensorFlow!"라는 
문자열을 hello라는 변수에 저장하는 것이다. '''

sess = tf.Session() #Computational Graph를 실행하기 위해서는 Session이라는 것을 만든다.

print(sess.run(hello)) #.run을 호출하여 sess라는 이름의 텐서플로 세션을 통해 hello라는 노드를 실행

가장 기본적인 hello world를 텐서플로에서 실행하는 코드이다.  

이러한 과정을 통해 출력된 결과는 다음과 같다.

b'Hello, TesorFlow!' #b는 Byte literals라는 것임을 의미한다

 

다음 예제는 위와 같은 Computational Graph를 구현하는 것이다. a라는 노드와 b라는 노드를 하나의 다른 노드로 연결시키는 것이다. 구현 결과는 아래와 같다.

 

 

print함수를 이용해 두 노드를 출력하면 보는 바와 같이, 텐서플로가 이들은 그저 그래프 안의 요소(Tensor)라고 대답한다. 따라서 일반적인 경우처럼 연산에 대한 결과값이 나오는 것이 아니라, 각 Tensor들의 속성에 대한 정보만 출력한다.

 

연산을 출력하려면 Hello TensorFlow를 출력했던 것과 같이 Session을 만들어주어야한다.

sess = tf.Session()
print("sess.run([node1, node2]): ", sess.run([node1, node2]))
print("sess.run(node3): ", sess.run(node3))

이렇게하면 결과는 아래와 같다.

sess.run([node1, node2]): [3.0, 4.0]
sess.run(node3): 7.0

 

 

따라서 텐서플로우의 구조를 보면,

 

1. TensorFlow Operation을 이용해서 Graph(Tensors)를 빌드해야 한다.
2. 다음으로 sess.run을 통해 data를 넣은 뒤 우리가 만든 Graph를 실행시킨다.
3. 그 결과로, 그래프 안에 있는 어떠한 값들이 update되거나, 어떠한 값을 return하게 된다

 

728x90
반응형