더북(TheBook)

3.3 케라스와 텐서플로의 간략한 역사

케라스는 텐서플로보다 8개월 앞서 나왔습니다. 케라스는 2015년 3월에 릴리스되었고 텐서플로는 2015년 11월에 릴리스되었습니다. 케라스가 텐서플로 위에 구축된 것인데 어떻게 텐서플로가 릴리스되기 전에 나올 수 있을까요? 케라스는 원래 씨아노(Theano)를 위한 라이브러리였습니다. 씨아노는 딥러닝 라이브러리 최초로 자동 미분과 GPU 지원을 제공하는 또 다른 텐서 조작 라이브러리입니다. 씨아노는 몬트리올 대학교(Université de Montréal)의 MILA(Montréal Institute for Learning Algorithms)에서 개발되었고 여러 가지 면에서 텐서플로의 선구자격인 라이브러리였습니다. 자동 미분과 CPU 및 GPU를 위한 코드를 컴파일하는 데 정적 계산 그래프를 사용하는 아이디어를 처음으로 고안했습니다.

텐서플로가 릴리스된 후 2015년 말에 케라스는 멀티백엔드(multibackend) 구조로 리팩터링(refactoring)되었습니다. 즉, 케라스를 씨아노나 텐서플로와 함께 사용할 수 있고, 환경 변수를 바꾸어 두 라이브러리 사이를 쉽게 전환할 수 있게 되었습니다. 2016년 9월에 텐서플로는 기술적으로 성숙한 수준에 도달했고 케라스의 기본 백엔드가 되었습니다. 2017년에 케라스에 2개의 새로운 백엔드 옵션이 추가되었습니다. (마이크로소프트(Microsoft)가 개발한) CNTK와 (아마존이 개발한) MXNet입니다. 지금은 씨아노와 CNTK 개발은 중지되었습니다. MXNet은 아마존 밖에서는 널리 사용되지 않습니다. 다시 케라스는 텐서플로를 사용하는 단일 백엔드 API가 되었습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.