Data/Ai

딥러닝 프레임워크들 - 텐서플로우, 케라스, 토치

재은초 2023. 6. 18. 13:01
반응형

딥러닝 프레임워크(Framework)

  • 딥러닝 프레임워크는 이미 검증된 수많은 라이브러리와 사전 학습까지 완료된 다양한 딥러닝 알고리즘을 제공함으로써, 중복적인 기능을 구현해야 하는 소모적인 작업으로부터 개발자를 자유롭게 해준다.
프레임워크(framework)란: 응용 프로그램을 개발하기 위한 여러 라이브러리나 모듈 등을 효율적으로 사용할 수 있도록 하나로 묶어 놓은 일종의 패키지라고 할 수 있다.

시아노(Theano)

  • 시아노는 최초의 딥러닝 프레임워크 중 하나로 파이썬을 기반으로 개발되었다.
  • 데이터를 탐색하거나 수치 계산에 매우 유용하지만, 확장성이 뛰어나지는 않으며 다중 GPU에 대한 지원도 부족하다. 그러나 아직까지도 범용적인 딥러닝 모델을 구축할 때 많이 사용되고 있다.

텐서플로우(Tensorflow)

  • 텐서플로우는 현재 가장 인기 있는 딥러닝 프레임워크 중 하나로 시아노를 대신하기 위해, 구글의 구글 브레인 팀에서 개발한 딥러닝 프레임워크다.
  • 텐서플로우는 C/C++ 엔진에 파이썬 API로 제작되어 빠른 실행이 가능하며, 딥러닝 알고리즘뿐만 아니라 강화 학습을 위한 다양한 알고리즘도 같이 지원한다. 또한 텐서보드(TensorBoard)라는 모델 가상화 도구를 제공하여 모델을 손쉽게 시각화할 수 있다.
  • 하지만 다른 프레임워크에 비해 속도가 느린 편이며 스칼라(Scala) 언어는 지원하지 않는다.
  • 오픈 소스로 공개한 이후 매우 활발하게 연구가 진행되어 현재 지원하는 언어도 파이썬과 C/C++뿐만 아니라 자바, Go 언어까지 추가되었다.

케라스(Keras)

  • 시아노나 텐서플로우를 사용하여 직접 딥러닝 모델을 만드는 것은 전문가가 아니면 매우 어렵기에, 이를 해결하기 위해서 효율적인 인공신경망을 단순화된 인터페이스로 구축할 수 있도록 개발된 딥러닝 프레임워크가 바로 케라스다.
  • 케라스 시아노와 텐서플로우를 백엔드로 사용하며, 토치와 같이 직관적인 API를 제공하고, 또한 파이썬으로 제작되어 매우 가볍고 배우기도 쉬우며, 빠른 업데이트로 다양한 계층에서 빠른 속도로 발전하고 있는 차세대 딥러닝 프레임워크라고 할 수 있다.

토치(Torch)

  • 토치는 루아라는 스크립트 언어를 기반으로 제작된 딥러닝 프레임워크로 페이스 북, 구글과 같은 대기업에서도 토치를 기반으로 하는 자체 버전을 별도로 개발하여 사용하고 있을 정도로 효율적인 프레임워크다.
  • 토치는 딥러닝 모델을 만드는 과정을 최대한 유연하고 간단하게 만드는 것을 목표로하며, 강화 학습에 필요한 사전 학습된 다양한 라이브러리를 제공해 준다.
  • 여기에 페이스북에 의해 오픈 소스화된 파이썬 기반의 Pytorch가 동적 계산 그래프(Dynamic computation graph)를 제공하며 순환 신경망(RNN) 분야에서 많은 인기를 얻고 있다.

DL4J(DeepLearning4J)

  • 자바로 개발된 딥러닝 프레임워크인 DL4J는 자바뿐만 아니라 클로저(Clojure)나 스칼라(Scala)와 같은 다른 JVM 언어도 함께 지원하고 있다.
  • DL4J는 하둡(Hadoop)과 스파크(Spark)를 기반으로 하는 빅데이터 도구와 함께 사용할 수 있으므로 효율적인 딥러닝이 가능하며, Akka와 같은 라이브러리를 사용하여 손쉽게 분산 시스템을 구현할 수 있는 장점을 가지기에 DL4J는 비즈니스 환경 중심의 분산 딥러닝 플랫폼으로 널리 사용되고 있다.

 

Reference

반응형