티스토리 뷰
파이썬에서 TensorFlow를 공부하면서 중요하다고 생각하는 부분을 정리하기 위해서 새로운 카테고리를 만들었습니다.
TensorFlow를 공부하면서 제가 헤매던 부분들을 주로 쓰면서 다른 분들에게도 도움이 되었으면 좋겠습니다.
TensorFlow 흐름
TensorFlow를 공부하기에 앞서 우선적으로 TensorFlow의 흐름을 이해하여야 좀더 쉽게 다가갈 수 있습니다.
텐서플로우는 계산을 그래프로 표현합니다. 이러한 그래프를 파이썬 IDE에서 만든뒤에 디바이스에 파이썬에서 만들어낸 그래프를 Session에 올려서 Device인 cpu 또는 gpu로 보내서 C로 실행시킵니다.
위 그림과 같이 그래프가 디바이스에 보내지는 그림이 파이썬에서 만든 그래프를 Session에 올려서 실행시키기 전의 그림입니다.
그 이후에 디바이스에서 Run을 실행한 그래프를 C로 보내서 계산을 진행합니다.
▼ 아래와 같이 TensorFlow를 이용하여 노드1을 만들었을때 이것을 파이썬에서 Print하게 되면 Tensor의 결과값이 아닌 이것이 어떤것인지 정의만을 알려주게 됩니다. 즉 하나의 Tensor정의입니다.
그렇다면 이것을 어떻게 원하는 것처럼 출력시킬 수 있을까요? 위에서 설명드렸던 흐름을 이해해야 아래와 같은 부분을 이해하기 쉬워집니다. 위에 그림을 모르고 그저 session이라는 것을 정의해줘야하는구나 라고 한다면 한계가 오게됩니다. 저희가 한것은 파이썬에서의 그래프를 만들어준 것입니다. 그렇다면 그래프를 Device에 보내줘야 합니다. 이떄 사용하는 것이 Session입니다.
▼ 아래와 같이 Tensorflow에 노드1,2,3을 만들었습니다. 이중에 node3은 노드 1, 2를 더해서 정보를 가지는 그래프입니다. 노트 3개를 만들고 프린트를 하게 된다면 각 노드 그래프의 정의를 출력하지만 이 그래프를 tf.Session()을 이용하여 디바이스로 보내서 C에서 RUN을 시켜주면 저희가 원하는 출력을 얻을 수 있습니다.
TensorFlow의 흐름을 이해한다면 위에 내용 뿐만 아니라 그 이후에 텐서플로우를 사용하는데에도 도움이 될 것 입니다. 저도 처음엔 그저 세션이라는 것을 이해하지 못하고 그냥 정의해서 사용해야 한다라고 단순하게 생각했지만 조금씩 하다보면서 막히는 부분들이 생겼고 그 부분을 해결하기 위해서는 이러한 흐름이 중요하다고 생각했습니다. 여러분에게 좋은 정보가 되었으면 좋겠습니다.