이번에 일이 있어서 딥러닝에 대해 본격적으로 공부하고 구현해야 될 일이 생겼다. 그래서 공부를 하면서 알게 된 것들을 적으려고 한다. 일단 가장 많이 알려지고 쓰는 tensorflow로 공부를 했다.
Tensorflow의 동작원리
- 일단 기본적으로 연산은 그래프로 표현한다. (그래프란 노드(점)와 엣지(선)로 이루어진 수학적인 구조)
- 그래프는 세션내에서 실행된다. (세션은 그래프의 operation을 CPU나 GPU같은 device에 배정하고 실행을 위한 메소드를 제공)
- 데이터는 tensor로 표현한다. (tensor는 정형화된 다차원 배열)
- 변수는 여러 그래프들이 작동할때도 그 상태를 유지한다.
- Operation에서 데이터를 입출력 할 때 feed와 fetch를 사용할수있다.
그래프 만들기
그래프를 만들때는 상수와 같이 아무 입력값이 필요없는 operation(이하 op)을 정의하는 것에서부터 시작한다. 이 op를 연산이 필요한 다른 op들에게 입력값으로 제공한다.
위의 코드는 tensorflow문서에 있는 예제코드이다. 보면 Session을 닫아주어야된다. 저 과정을 쉽게 할수있는 코드가 있다.
이렇게 간단하게 바꿀수도 있다.