파이토치와 텐서플로는 모두 개발자가 머신러닝 모델을 구축하고, 학습할 수 있는 도구를 제공하는 딥러닝 프레임워크이다. 둘 다 장단점이 있기에 본인의 요구사항에 맞는 툴을 사용하는게 중요하다. 그래서 이번 글에서는 이 두 프레임워크의 특징과 장단점에 대해 간단하게 알아볼 것이다.
파이토치는 2016년에 페이스북(메타) AI 연구팀에서 공개한 파이썬 기반 오픈소스 라이브러리이다. 파이토치는 기존에 루아 언어로 개발된 토치를 파이썬으로 사용할 수 있게하였다.
파이토치의 경우 엔진과 연산기능은 CUDA나 C++로 개발되어있고, API는 파이썬을 통해 접근 가능하게 하여 성능과 편의성 모두 챙겼다.
텐서 플로는 구글에서 만든 딥러닝을 쉽게 구현할 수 있도록 기능을 제공하는 라이브러리이다.
텐서플로우가 맞는 발음인 것같지만 대다수의 한글 문서에서는 텐서플로 불리고 있다
텐서플로는 기본적으로 C++로 구현이 되지만, 파이썬, 자바, GO와 같은 언어를 지원한다. 하지만 파이썬을 우선적으로 지원하기에 파이썬으로 개발하는게 권장된다.
텐서플로가 상대적으로 학습하기 어렵다보니, 사용자 친화적인 API로 케라스가 등장한다. 케라스는 여러 백엔드 엔진을 지원하는데 그중에서도 텐서플로가 주된 백엔드로 사용된다. 텐서플로 2.0 부터는 케라스가 텐서플로의 공식 고급 API로 채택됨에 따라 텐서플로의 강력한 기능과 사용편의성이 결합되었다. 그럼에도 텐서플로를 직접 사용하는 것보다는 한계가 있다.
파이토치와 텐서플로의 가장 큰 차이점 중에 하나가 computational ghaph의 방식이다.
가 사용된다.
텐서플로는 우선 그래프를 모두 정의하고, 실행시 데이터를 넣어 실행시키는 방식이다.
반면 파이토치는 define by run 방식으로 실행해가면서 그래프를 생성해 나가는 방식이다.