이 포스팅은 김성훈 교수님의 강의(모두를 위한 딥러닝)를 수강하며 공부한 내용을 정리한 것입니다.
*해당 포스트는 텐서플로우 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하게 된다
'공부정리 > 모두를 위한 딥러닝 (강의 정리)' 카테고리의 다른 글
[딥러닝] Convolutional Neural Networks - 강의 정리 (0) | 2022.09.13 |
---|---|
2-1. Linear Regression(선형회귀) (0) | 2022.04.07 |
1. Machine Learning Basics (0) | 2022.04.07 |