텐서플로우 (TensorFlow)
텐서플로우 (TensorFlow)
텐서플로우는 구글에서 사용되는 제품에 이용되는 머신러닝(기계학습) 라이브러리를 뜻합니다.
최초 2010년 디스트빌리프(DistBelief)라는 프로젝트로 시작하였으며, 그 뒤를 이어 2015년 11월 2세대 인공지능 학습 라이브러리인 텐서플로우라는 이름으로 모든 사용자들을 위해 오픈소스 형태로 공개하였습니다.
텐서플로우라는 이름에서 알 수 있듯, 텐서플로우에서 머신러닝을 위한 데이터 연산은 상태를 가지는 데이터 플로우 그래프(Data Flow Graph) 로 표현 되는 것이 특징입니다.
텐서플로우는 고급 프로그래밍 언어로 알려진 Python을 활용해서 연산처리를 작성할 수 있습니다. 물론 다른 언어들도 많이 존재하지만, 기본적으로 Python 관련 자료가 가장 많이 존재합니다.
현재는 일반버전과 GPU 가속버전 2가지 버전이 공개 되어 있습니다. 일반버전의 경우 일반적인 컴퓨터에서
실행 가능하며, GPU가속버전의 경우 GPGPU를 통해 대량의
연산이 가능하도록 하고 있습니다.
*GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용
계산)란? : 일반적으로 컴퓨터 그래픽 처리를 위한 계산을
맡았던 GPU를 CPU가 맡았던 응용프로그램들의 계산에 사용할
수 있도록 하는 기술을 뜻 함
데이터 플로우 그래프(Data Flow Graph)
먼저 데이터 플로우 그래프에 대해서 알아 보겠습니다. 데이터 플로우 그래프는 수학 계산과 데이터의 흐름을 노드와 엣지를 사용한 방향 그래프로 표현한 것을 말합니다.
- 노드(Node) : 텐서플로우에서 노드는 수학적 계산과 데이터의 입/출력, 데이터의 읽기/저장의 기능을 수행 합니다.
- 엣지(Edge) : 텐서플로우에서 엣지는 노드간의 데이터 흐름의 입출력 관계를 나타냅니다.
아래는 데이터 플로우의 노드와 엣지에 대해서 표현한 그래프입니다.
텐서플로우 특징
텐서플로우 정보사이트에서는 텐서플로우의 특징에 대해서 아래와 같이 명시하고 있습니다.
- 데이터 플로우 그래프를 통한 풍부한 표현력
- 코드 수정 없이 CPU/GPU 모드로 동작
- 아이디어 테스트에서 서비스 단계까지 이용 가능
- 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리
- Python/C++를 지원하며, SWIG를 통해 다양한 언어 지원 가능
특징에 대해서는 명확하게 정리되지 않은 부분이 있지만, 이후 설치 및 프로젝트 진행을 하면서 해당 특징에 대해서 자세하게 설명하도록 하겠습니다.
'정보공유 > 인공지능' 카테고리의 다른 글
2017 글로벌 인공지능 스타트업 (0) | 2017.10.17 |
---|---|
돌핀어택(DolphinAttack) (0) | 2017.09.07 |
Must have Alexa skills (0) | 2017.07.10 |
딥러닝 관련 링크 (0) | 2015.12.23 |
데이터과학 (0) | 2015.06.30 |