텐서플로우 아키텍처

 

Python, C++을 통해 텐서플로우를 이용할 수 있다.

 -> C API 위에서 python, C++ 등의 언어를 이용하여 머신러닝 프로그램을 작성할 수 있다.

다양한 라이브러리를 사용할 수 있음

경사하강법 및 선형회귀기법 등이 학습 라이브러리, 추론 라이브러리에 속함

 

1. 클라이언트 (Client)

 - 텐서플로우 아키텍처 시스템에서 상위 계층에 위치

 - 컴퓨터 연산 과정을 데이터 플로우 그래프 형태로 표현

 - 세션을 이용해 자신이 만든 그래프를 실질적으로 실행

 

2. 분산 마스터 (Distributed Master)

 - 세션의 시작을 위한 인수로 정의된 그래프에서 부분 그래프로 나눠 정리

 - 하위 그래프를 다른 프로세스와 장치에서 실행되는 여러 조각으로 분할

 - 그래프 조각이 처리될 수 있도록 작업자 서비스에게 분배

 - 작업자 서비스가 실행할 그래프 조각을 초기화

 

3. 작업자 서비스 (Worker Services)

 - 특정 하드웨어(CPU, GPU)에게 적절한 커널 기능을 이용하는 그래프 작업의 실행을 관리

 - 그래프가 효율적으로 동작하도록 하기 위해 커널 기능을 잘 이용 필요

 - 다른 작업자 서비스와 실행 결과를 주고 받음

 

4. 커널 기능 (Kernel Implementations)

 - 개별적인 그래프 작업을 처리

 - 실질적으로 컴퓨터가 연산을 처리

 

 

 

클라이언트에서 작성된 그래프가 마스터로 넘어가고

마스터가 그 그래프를 조각 단위로 워커들에게 분배

워커들은 커널 기능을 이용하여 각각의 그래프 조각들을 실제로 실행할 수 있도록 처리

 

텐서플로우는 어떠한 학습을 시킴에 있어서 작업을 작은 단위로 나눠 보다 높은 효율성을 낼 수 있도록 설계되어있다는 점이 큰 특징

 

 

 

 

+ Recent posts