1.5 텐서플로와 케라스
텐서플로(TensorFlow)는 구글 브레인 팀이 개발한 오픈 소스 신경망 및 딥러닝 라이브러리로, 모바일 기기부터 클러스터에 이르는 다양한 플랫폼에서 실행할 수 있는 확장성을 갖췄다. 오늘날 텐서플로는 가장 널리 사용하는 머신 러닝 라이브러리이며, 다양한 애플리케이션에 광범위하게 활용한다. 예를 들어, 요즘 많이 사용하는 여러 인공 지능 온라인 서비스(이미지 검색, 음성 인식, 추천 엔진 등)를 구현하는 데 텐서플로가 큰 역할을 했다. 텐서플로는 어느새 인공 지능 애플리케이션에 반드시 필요한 존재로 자리매김했다.
케라스는 텐서플로를 기반으로 동작하는 고수준 API다. 하지만 이미 텐서플로가 있는데 또 다른 API가 왜 필요할까? 케라스는 신경망을 만드는 복잡한 과정을 제거해 사용자가 세세한 저수준 구현을 신경 쓰지 않고도 빠르게 신경망을 구현하고 실험할 수 있게 돕는다. 다시 말해 케라스는 텐서플로 신경망을 손쉽게 만들 수 있는 직관적인 API를 제공한다.
케라스의 설계 원칙은 모듈화와 확장성이다. 다음 1.5.1절에서도 볼 수 있듯이, 마치 레고 블록을 쌓아 큰 구조물을 만들 듯 케라스 API를 여러 번 호출해 신경망을 손쉽게 만들 수 있다. 이처럼 친절하고 손쉬운 사용법 덕분에 케라스는 파이썬 머신 러닝 라이브러리의 정점에 올랐다. 우리도 케라스를 사용해 신경망을 만들 것이다.