Hello, TensorFlow!

오라일리 홈페이지에 텐서플로우의 구조에 대해 소개하는 글 ‘Hello, TensorFlow!‘이 게재되었습니다. 이 글은 매우 간단한 예제를 다루지만 데이터플로우 그래프에 촛점을 맞추어 자세하게 설명하고 있습니다. 이 글에 실린 예제를 바탕으로 하여 정리한 쥬피터 노트북을 참고해 주세요.

파이썬 변수는 오브젝트(객체)를 가리키는 이름입니다. 즉 오브젝트가 이름을 가지고 있는 것이 아니고 변수 이름이 오브젝트를 지칭하고 있습니다. 이런 파이썬의 특징을 텐서플로우도 그대로 가지고 있지만 파이썬은 각 라인이 해석될 때 실제적으로 연산이 되는 반면 텐서플로우는 실제 연산은 뒤로 미루어지고 오브젝트 끼리의 연산을 표현하는 데이터플로우 그래프를 만듭니다. 이렇게 데이터플로우 그래프를 만들고 난 후에는 세션을 통해 전체 혹은 그래프의 일부분을 실행합니다.

텐서플로우가 프로토콜 버퍼 형식으로 표현하는 간단한 데이터플로우 그래프를 직접 들여다 볼 수 있도록 안내하고 있으며 텐서보드를 이용해서 이를 비주얼하게도 볼 수 있도록 설명하고 있습니다. 텐서플로우가 씨아노(Theano)나 토치(Torch)처럼 그래프를 이용해 수치 연산을 표현하는 이유를 텐서플로우 튜토리얼의 내용에서 찾을 수 있습니다. Numpy 등의 수학 라이브러리들은 성능상의 이유로 C, C++ 로 개발되어 있는 경우가 많습니다. 하지만 이런 연산들을 프로그램 매 라인마다 파이썬과 C 코드 사이를 전환한다면 특히 GPU 연산일 경우 데이터 이동 등의 문제로 인해 성능을 극대화시키기 어렵습니다. 그래서 그래프 형태로 연산의 구조를 표현하여 저수준 라이브러리와 하드웨어에 연산과정을 한번에 위임하는 형태를 가지게 되었습니다.

‘Hello, TensorFlow!’ 의 예제를 쥬피터 노트북으로 정리하여 깃허브에 올려 놓았습니다. 노트북의 주석을 같이 참고하시면 좋을 것 같습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중