본문 바로가기
AI 및 데이터 분석

텐서플로와 케라스 소개: 딥러닝의 핵심 도구들

by riML 2023. 12. 13.

1. 텐서플로와 케라스란?

텐서플로(TensorFlow)는 구글에서 개발한 파이썬 기반의 무료 오픈 소스 머신 러닝 플랫폼으로, 넘파이와 유사한 점에서 출발하면서도 머신 러닝과 딥러닝에서의 활용을 더욱 확장한 도구입니다. 텐서플로의 주요 목표는 엔지니어와 연구자가 수치 텐서를 활용한 수학적 표현을 편리하게 할 수 있도록 하는 것이며, 이를 통해 머신 러닝 모델을 효과적으로 구축하고 훈련할 수 있습니다. 

텐서플로는 넘파이와 달리 자동 그레이디언트 계산을 지원하여 머신 러닝에 특히 적합하며, CPU 뿐만 아니라 GPU와 TPU와 같은 고도로 병렬화된 하드웨어 가속기에서도 실행 가능합니다. 또한, 텐서플로로 정의된 계산은 여러 머신에 효과적으로 분산시킬 수 있어 대규모 데이터셋에 대한 학습도 가능합니다. 뿐만 아니라, 텐서플로 프로그램은 C++, 자바스크립트, 텐서플로 라이트 등과 같은 다양한 런타임에 맞게 변환하여 배포할 수 있습니다.

케라스(Keras)는 텐서플로 상위에 위치한 파이썬용 딥러닝 API로, 딥러닝 모델을 손쉽게 구축하고 훈련할 수 있는 고수준 인터페이스를 제공합니다. 초기에는 실험적인 딥러닝 연구를 위해 만들어졌지만, 텐서플로와 통합하여 여러 하드웨어에서 실행 가능하며 확장성 있는 기능을 지원합니다. 케라스는 간편한 사용성과 함께 다양한 딥러닝 응용에 적합한 도구로 자리 잡고 있습니다.

 

케라스는 사용자 경험을 최우선으로 두며, API를 제공합니다. 케라스는 사용자들이 쉽게 배우고 사용할 수 있도록 모범 사례를 따르며, 일관되고 간단한 워크플로를 제공합니다. 이를 통해 사용자가 일반적인 작업을 수행하는 데 필요한 노력을 최소화하고, 명확하고 실행 가능한 피드백을 제공하여 사용자 에러를 줄입니다. 이러한 특성으로 인해 케라스는 초보자가 머신 러닝을 더 쉽게 배울 수 있으며, 전문가들이 생산성을 높이면서 사용할 수 있는 강력한 도구로 인정받고 있습니다.

 

케라스는 다양한 사용자 층을 고려하여 하나의 표준 방식을 강요하지 않습니다. 이는 모델을 구축하고 훈련하는 데 있어 사용자의 선호에 따라 고수준에서 저수준까지 다양한 워크플로를 적용할 수 있다는 유연성을 제공합니다. 사용자들은 자신의 성향과 목적에 맞게 최적의 방식을 선택할 수 있어, 케라스는 다양한 사용자들 간에 널리 사용되고 있습니다.

 

2. 텐서플로와 케라스의 역사

케라스는 텐서플로보다 8개월 앞서 나온 역사를 가지고 있습니다. 케라스는 2015년 3월에 처음으로 릴리스되었고, 그보다 8개월 뒤인 2015년 11월에 텐서플로가 세상에 나왔습니다. 이러한 시기 차이에 대한 이유는 케라스가 원래 씨아노(Cython)를 기반으로 한 라이브러리였기 때문입니다. 씨아노는 딥러닝 라이브러리 중 최초로 자동 미분과 GPU 지원을 제공하는 텐서 조작 라이브러리였습니다.

하지만 2015년 말에 텐서플로가 릴리스되면서, 케라스는 멀티백엔드 구조로 리팩터링되었습니다. 이제 케라스는 씨아노와 텐서플로를 함께 사용할 수 있게 되었고, 환경 변수를 변경하여 두 라이브러리 간을 자유롭게 전환할 수 있게 되었습니다. 2016년 9월에는 텐서플로가 기술적으로 성숙한 단계에 도달하면서 케라스가 텐서플로의 기본 백엔드로 채택되었습니다. 2018년에는 텐서플로 사용자 대다수가 케라스를 사용하거나 케라스와 텐서플로를 조합하여 활용했습니다. 그리고 2018년 말, 텐서플로는 케라스를 텐서플로의 공식 고수준 API로 채택했습니다.

케라스는 2019년 9월에 릴리스된 텐서플로 2.0의 핵심이 되어 선두에 서게 되었습니다. 케라스는 지속적인 발전을 거듭하며 머신 러닝 및 딥러닝 분야에서 매우 중요한 역할을 하고 있습니다.

 

3. 케라스 작업을 위한 환경 설정하기

딥러닝 애플리케이션 개발을 시작하기 전에 개발 환경을 설정해야 합니다. 필수적인 것은 아니지만 최신 NVIDIA GPU에서 코드를 실행하는 것을 권장합니다. 고성능 멀티코어 CPU를 사용하더라도 속도가 현저히 느릴 수 있습니다. 최신 GPU를 사용하면 일반적으로 5배에서 10배까지 속도가 향상됩니다.

딥러닝을 위한 GPU 활용 방법에는 여러 가지가 있습니다. 직접 NVIDIA GPU를 구입하여 컴퓨터에 설치할 수 있고, 구글 클라우드나 AWS와 같은 클라우드 서비스의 GPU 인스턴스를 활용할 수도 있습니다. 또는 Google Colab의 무료 GPU 런타임을 활용할 수도 있습니다.

Colab은 가장 간편한 시작 방법 중 하나입니다. 하드웨어를 구매하거나 소프트웨어를 설치할 필요가 없이 브라우저에서 바로 코딩을 시작할 수 있습니다. Colab은 무료로 제공되는 주피터 노트북 서비스로, 클라우드에서 실행됩니다.

Colab에서 GPU 런타임을 사용하려면 "런타임" 메뉴에서 "런타임 유형 변경"을 선택하고, "하드웨어 가속기"를 GPU로 설정하면 됩니다.

 

텐서플로와 케라스는 GPU를 사용할 수 있다면 자동으로 GPU에서 실행됩니다. 따라서 런타임을 선택한 후 추가적으로 해야할 일은 없습니다!