텐서플로우 아키텍처
Python, C++을 통해 텐서플로우를 이용할 수 있다.
-> C API 위에서 python, C++ 등의 언어를 이용하여 머신러닝 프로그램을 작성할 수 있다.
다양한 라이브러리를 사용할 수 있음
경사하강법 및 선형회귀기법 등이 학습 라이브러리, 추론 라이브러리에 속함
1. 클라이언트 (Client)
- 텐서플로우 아키텍처 시스템에서 상위 계층에 위치
- 컴퓨터 연산 과정을 데이터 플로우 그래프 형태로 표현
- 세션을 이용해 자신이 만든 그래프를 실질적으로 실행
2. 분산 마스터 (Distributed Master)
- 세션의 시작을 위한 인수로 정의된 그래프에서 부분 그래프로 나눠 정리
- 하위 그래프를 다른 프로세스와 장치에서 실행되는 여러 조각으로 분할
- 그래프 조각이 처리될 수 있도록 작업자 서비스에게 분배
- 작업자 서비스가 실행할 그래프 조각을 초기화
3. 작업자 서비스 (Worker Services)
- 특정 하드웨어(CPU, GPU)에게 적절한 커널 기능을 이용하는 그래프 작업의 실행을 관리
- 그래프가 효율적으로 동작하도록 하기 위해 커널 기능을 잘 이용 필요
- 다른 작업자 서비스와 실행 결과를 주고 받음
4. 커널 기능 (Kernel Implementations)
- 개별적인 그래프 작업을 처리
- 실질적으로 컴퓨터가 연산을 처리
클라이언트에서 작성된 그래프가 마스터로 넘어가고
마스터가 그 그래프를 조각 단위로 워커들에게 분배
워커들은 커널 기능을 이용하여 각각의 그래프 조각들을 실제로 실행할 수 있도록 처리
텐서플로우는 어떠한 학습을 시킴에 있어서 작업을 작은 단위로 나눠 보다 높은 효율성을 낼 수 있도록 설계되어있다는 점이 큰 특징
'About Data > Tensorflow with Python' 카테고리의 다른 글
[Python][Tensorflow][Jupyter] 실습 4 : 데이터 관련 작업에서 많이 쓰는 라이브러리 체험하기 - k-means, numpy, pandas, matplot (28) | 2019.07.12 |
---|---|
[Python][Tensorflow] 세션(Session)에 대하여 (0) | 2019.07.12 |
[Python][Tensorflow][Jupyter] 실습 3 : 간단한 함수들 (26) | 2019.07.10 |
[Python][Tensorflow][Jupyter] 실습 2 : placeholder (24) | 2019.07.09 |
[Python][Tensorflow][Jupyter] 실습 1 : constant, variable, init (0) | 2019.07.09 |