텐서플로(TensorFlow)는 구글 제품에 사용되는 머신러닝(기계학습)을 위한 오픈소스 소프트웨어 라이브러리 입니다. 구글 내 연구와 제품개발을 위한 목적으로 구글 브레인팀이 만들었고 2015년 11월 9일 아파치 2.0 오픈소스 라이센스로 공개되었습니다.


아파치 2.0 오픈소스 라이센스는 누구나 해당 소프트웨어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이센스 규정을 의미합니다. 아파치 라이센스에 따르면 누구든 자유롭게 아파치 소프트웨어를 다운 받아 부분 혹은 전체를 개인적 혹은 상업적 목적으로 이용할 수 있으며 재배포시에는 원본 소스 코드 또는 수정한 소스 코드를 반드시 포함시켜야 하는 것은 아니고 아파치 라이센스 버전 2.0을 포함시켜야 하며 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 명확하게 밝혀야 합니다.


한 마디로 "출처만 밝히고 마음대로 이용하렴" 입니다. OpenCV(Open Source Computer Vision)를 자주 이용하는 입장으로서 BSD 라이센스가 생각나지 않을 수 없습니다. 아파치 2.0 오픈소스 라이센스와 BSD 라이센스가 내용적인 측면에서 어떠한 차이점을 가지고 있는지는 잘 모르겠습니다. 둘 다 같은 목적인 듯 합니다만.. 

BSD(Berkeley Software Distribution) 라이센스는 소프트웨어 라이센스라고도 할 수 없을 만큼 미약하여, 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있습니다. 수정본의 재배포는 의무적인 사항이 아니므로 BSD 라이센스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있습니다. 

LICENSE.TXT 및 README.txt 포함 의무가 있습니다. LICENSE.txt는 BSD 라이센스의 대한 내용이며 README.txt는 OpenCV 홈페이지 및 관련 게시판 주소 링크 등 기본적인 정보입니다. 이러한 제약없는 제약(?) 때문에 많은 산업 현장에서 OpenCV가 사용되고 있는 것으로 알고 있습니다. 


같은 이유로 텐서플로는 많은 산업 현장에 사용될 것으로 예상됩니다. 이미 많이 사용하고 있을지도 모르겠습니다. 구글은 머신러닝 라이브러리인 텐서플로를 거의 제약이 없는 라이센스로 배포함으로써 머신러닝의 거대한 인프라를 구축할 수 있을 것입니다. 표면적으로는 기술의 발전과 정보의 공유의 목적이 있겠지만 거대한 인프라 구축을 통한 머신러닝 시장 점유율 확보에 대한 느낌을 지울 수는 없습니다. 이 부분이 옳지 못한 것은 아닙니다. 구글의 앞선 기술력과 발빠른 전략이라고 생각합니다.


텐서플로는 안드로이드와 iOS와 같은 모바일 환경은 물론 64비트 리눅스, MacOS의 데스크탑이나 서버 시스템의 여러개의 CPU와 GPU에서 구동될 수 있습니다.


  • 데이터 플로우 그래프

데이터 플로우 그래프는 수학 계산과 데이터의 흐름을 노드(Node)와 엣지(Edge)를 사용한 방향 그래프(Directed Graph)로 표현합니다.

노드는 수학적 계산, 데이터 입/출력, 그리고 데이터의 읽기/저장 등의 작업을 수행합니다. 엣지는 노드들 간 데이터의 입출력 관계를 나타냅니다. 엣지는 동적 사이즈의 다차원 데이터 배열(=텐서)을 실어나르는데, 여기에서 텐서플로우라는 이름이 지어졌습니다.


  • 특징

- 데이터 플로우 그래프를 통한 풍부한 표현력

- 코드 수정 없이 CPU/GPU 모드로 동작

- 아이디어 테스트에서 서비스 단계까지 이용 가능

- 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리

- Python/C++를 지원하며, SWIG를 통해 다양한 언어 지원 가능

SWIG(Simplified Wrapper and Interface Generator)는 c나 c++로 작성된 컴퓨터 프로그램이나 라이브러리들을 다른 언어들과 연결하는데 사용하는 오픈 소스 소프트웨어 도구이다.



출처


'머신러닝 > TensorFlow' 카테고리의 다른 글

tf.contrib.learn  (0) 2017.03.08
tf.train API  (0) 2017.03.07
TensorFlow Core tutorial  (0) 2017.02.28
설치하기  (2) 2017.02.21

퍼오는 자료는


언제 비공개로 전환될지, 정보가 사라질지 알 수 없으므로


출처를 명시하되 재가공해서 게시한다.


책이나 오프라인 자료 역시 마찬가지이다.


본인의 창작물에 대해서는 


출처만 명시한다면 


정보공유를 위해 퍼가거나 자료를 가공하는 것 또한 가능하다.

'소개' 카테고리의 다른 글

망각의 동물(feat. 게으름)  (0) 2020.08.30
블로그 개설 목적  (1) 2017.02.20

인간은 망각의 동물이라고 한다.


모두 다 기억하기는 어렵겠지만 


본인이 원하는 정보 및 지식을 잘 모아놓고 정리한다면 


쉽게 찾아보고 기억할 수 있을 것이다.


시작이 반이라고 했다.


항상 겸손함을 잃지 않고 꾸준한 자기성찰을 통해


스스로 계속 발전할 수 있기를 바래본다.

'소개' 카테고리의 다른 글

망각의 동물(feat. 게으름)  (0) 2020.08.30
글 작성 및 공유 방침  (0) 2017.02.21

+ Recent posts