페이지

2022년 7월 23일 토요일

3.2.1 케라스, 텐서를로, 싸아노, CNTK

케라스는 딥러닝 모델을 만들기 위한 고수준의 구성 요소를 제공하는 모델 수준의 라이브러리입니다. 텐서 조작이나 미분 같은 저수준의 연산을 다루지 않습니다. 그 대신 케라스의 백엔트 엔진(backend engine)에서 제공하는 최적화되고 특화된 테서 라이브러리를 사용합니다. 케라스는 하나의 텐서 라이브러리에 국한하여 구현되어 있지 않고 모듈 구조로 구성되어 있습니다. 여러가지 백엔드 엔진이 케라스와 매끄럽게 연동됩니다. 현재는 텐서를로, 씨아노, 마이크로소프트 코그니티브 툴킷(Microsoft Cognitive Toolkit, CNTK) 3개를 백엔드 엔진으로 사용할 수 있습니다. 향후에는 더 많은 딥러닝 엔진을 케라스에 사용할 수 있을 것 입니다.

텐서플로, CNTK, 씨아노는 딥러닝을 위한 주요 플랫품 중 하나입니다. 씨아노(http://deeplearning.net/software/theano)는 몬트리올 대학 MILA 연구소에서 개발했고, 텐서플로(https://www.tensorflow.org)는 구글에서 개발했으면, CNTK(http://github.com/Microsoft/CNTK)는 마이크로 소프트에서 개발했습니다. 케라스로 작성한 모든 코드는 아무런 변경 없이 이런 백엔드 중 하나를 선택해서 실행시킬 수 있습니다. 개발하는 중간에 하나의 벡엔드가 특정 작업에 더 빠르다고 판단되면 언제든지 백엔드를 바꿀 수 있어 아주 유용합니다. 가장 널리 사용되고 확장성이 뛰어나며 사용 제품에 쓸 수 있기 때문에 대부분의 딥러닝 작업에 텐서플로 백엔드가 기본으로권장됩니다.

텐서플로(또는 씨아노나 CNTK)를 사용하기 때문에 케라스는 CPU와 GPU에서 모두 작동할 수 있습니다. CPU에서 실행될 때 텐서를로는 Eigen(http://eigen.tuxfamily.org)이라고 불리는 저수순 텐서 연산 라이브러리를 이용합니다. CPU에서 실행될 때 텐서를로는 Eigen(http://eigen.tuxfamily. org)이라고 부리는 저수준 텐서 연산 라이브러리를 이요합니다. GPU에서는 NVIDIA CUDA 심층 신경망 라이브러리(cuDNN) 라고 불리는 고도로 최적화된 딥러닝 연산 라이브러리를 이용합니다.

 

댓글 없음: