텐서플로우 스터디 05: Data flow에 대한 추가설명

O’Reilly에서 나온 이 포스트를 읽고 나서 텐서플로우의 구조에 대해 좀 더 이해할 수 있게 되었다.

이전에 쓴 이 포스트에 덧붙여 설명하자면,

Variable을 만들거나, initalize하거나, 혹은 심지어 constant를 만드는 것 자체도 operation이며 그래프의 node가 된다고 생각할 수 있다.

텐서를 edge라고 생각하기 보다는, operation으로 이루어진 그래프에서 데이터가 흐르고 있고, 그 흐름을 텐서라고 보는 것이 조금 더 직관적으로 적절한 설명이 될 것 같다.

그리고 위 글엔 텐서플로우가 왜 (graph를 먼저 만든 뒤에) lazy evaluation을 하는지 나와있는데, 직접 읽어보면 좋겠지만 간단하게 설명하자면 실행 속도가 느린 Python기반에서 파이썬을 인터페이스로 다른 언어(C나 Java같은 조금 더 빠른 언어…)를 왔다갔다하는 것 자체에 overhead가 있어서, 모든 연산을 아예 다른 언어에서 하기 위해서라고 한다…

Theano랑 Torch에서도 이런 기법을 쓴다고. ← 안 써봐서 몰랐었다…

Like what you read? Give Emil a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.