딥러닝 개발환경

3. 딥러닝 개발환경이란?

Do-Woo-Ner 2020. 2. 1. 17:54

안녕하세요~


이번장에서는 딥러닝 개발환경에 대해서 알아보도록 할거에요.


개발환경이란 개념자체가 어려운건 아니에요. 


개발환경이란 말 그대로 내가 개발을 하려고 했을 때 필요한 환경을 말하는거에요. 그렇다면 환경이라는 것이 구체적으로 무엇을 의미할까요? 딥러닝 개발환경은 어떤 순서로 구축해야 하는걸까요?


(여기서는 설치방법에 대해서 따로 다루지 않을거에요. 설치방법은 인터넷에 검색하면 쉽게 나와있으니 그걸 그대로 따라하시면되요!)


설치순서: 운영체제(OS) -> CUDA -> cuDNN -> 프로그래밍 언어 or 패키지(Anaconda) -> Pytorch





1. Framework 설치하기


앞선 글에서 Framework에 대해서 설명드렸죠? 딥러닝 개발환경을 구축하기 위해서 제일 먼저 해야할 일은 내가 사용하고자 하는 Framework를 선정하는거에요.


저같은 경우에는 Pytorch를 딥러닝 Framework로 선정했어요.


"PyTorch 홈페이지 -> Get Started"로 들어가면 아래와 같은 화면이나와요. 보시면 Pytorch를 사용하기 위해 필요한 사항들이 나와있어요. 즉, Pytorch라는 딥러닝 framework를 사용하려면 아래와 같은 사양들이 필요한데, Pytorch, 운영체제, 패키지, 프로그래밍언어, CUDA 이러한 것들을 통칭하여 '딥러닝 개발환경'이라고 불려요.  


-운영체제

-패키지

-프로그래밍 언어(API)

-CUDA

<사진1>


그런데 Pytorch를 설치하면 이러한 사양들이 자동으로 설치가 되지는 않기 때문에 여러분들이 직접 설치를 해주시고 나서 Pytorch를 설치해주셔야해요.






2. 운영체제


여러분들은 보통 윈도우만 사용하셨을거에요. 그런데 딥러닝과 같은 작업을 할때는 심심치않게 리눅스 운영체제를 만나기도해요. 그렇기 때문에 종종 pytorch로 구현되어 있는 프로그램을 실행시키려고 하는데, 그 프로그램이 리눅스만 지원하는경우가 생겨요. 그래서 어떤 운영체제를 설치할까가 매우 중요하답니다.


<사진2. 윈도우>


<사진3. 리눅스>





딥러닝 개발환경을 구축하기 위해서 제일먼저 설치해야하는 요소라고 생각하시면되요!







3. CUDA


Compute Unified Device Architecture의 약자로 오늘날 많은 사람들은 'CUDA=병렬처리 시스템=GPU사용을 위한 툴' 이라는 인식을 갖고 있어요. 딥러닝이라는 학문이 보통 행렬연산이라든지 병렬처리가 필요한 구조로 되어있는 연산이 많다보니 GPU와 같은 device가 꼭 필요한 경우가 많아요.


그래서 NVIDIA라는 회사에서는 GPU라는 하드웨어를 만들고 이를 사용자가 쉽게 사용할 수 있도록 driver를 제공해줍니다. (보통 우리가 GPU를 그래픽카드라는 개념으로 많이 인식하고 있죠)


그래서 딥러닝 framework 진영인 pytorch나 tensorflow같은 곳에서는 최신 GPU driver 버전을 사용하도록 노력하고 있어서 지속적으로 버전을 업그레이드 하고 있어요.


<사진4>









<3. cuDNN 설치>


이상하게 Pytorch 홈페이지에서는 cuDNN을 설치하라는 말이 없죠? 하지만 NVIDA에서는 cuDNN (CUDA Deep Neural Network)라는 딥러닝을 위한 라이브러리를 따로 제공해줍니다. 


Pytorch에서는 cuDNN 라이브러리를 이용하는 기능(함수)들이 많기 때문에 cuDNN을 따로 설치해주는 것이 좋습니다.


<사진5>







<4. 프로그래밍 언어 or 패키지>


이제 Pytorch의 기반이 되는 프로그래밍 언어를 설치할거에요. 그런데, 이전글에서 설명했듯이 프로그래밍 언어를 설치한다는건 보통 python api, java api 등 을 설치한다는거에요. 그런데 이런 프로그래밍 api는 굉장히 기본적인 패키지들만 있어서 딥러닝을 위한 패키지들을 따로 설치해주어야해요.


이런 수고를 덜기 위해서 Data science (or 과학관련분야)에 필요한 패키지들을 따로 모아서 제공해주는 플랫폼인 '아나콘다'가 등장하게 됩니다.  


<사진6>



그래서 '아나콘다'를 설치하게 되면 Python API도 저절로 설치되면서 과학과 관련된 패키지들이 자동적으로 설치되는 셈인거죠! 


그래서 보통 딥러닝 하시는 분들이나 과학관련 업무를 하시는 분들은 '파이썬+여러 패키지'를 개별적으로 따로 설치하지 않고 아나콘다 하나만 설치해서 쉽게 프로그래밍을 하신답니다.





<5. 딥러닝 framework; Pytorch>


이제 모든것이 세팅되었으면 딥러닝 framework를 설치해주시면되요.


딥러닝 framework 종류(Tensorflow, Pytorch, Keras 등)에 따라서 개발환경이 달라져요. 하지만 대부분 '운영체제, CUDA, cuDNN, 아나콘다(Python)' 정도 설치해주시면 어떤 framework라도 쉽게 사용하실 수 있으실 거에요!


<사진7>





지금까지 '딥러닝 개발환경'에 대해서 알아보았어요! ㅎㅎ


그런데 제가 여기서 질문하나만 던져 볼게요.


여러분이 진행하는 프로젝트에서 딥러닝과 관련된 프로그램을 3개(A,B,C) 정도 사용한다고 했을때 여러분의 PC는 하나라고 가정해볼게요. 그리고, 이미 CUDA 버전=9.0, cuDNN=7.0, 아나콘다=Python 3.6를 설치했다고 해볼게요. 그런데, 프로그램A에서는 이미 설치된 개발환경에서 무리없이 실행이되지만, 프로그램B (CUDA=10.0, cuDNN=8.0, python=3.7), 프로그램C (CUDA=10.2, cuDNN=8.0, Python=3.8)는 각각 요구하는 사항이 다르다고 한다면 어떻게 할까요? 프로그램을 실행할때마다 다시전부 삭제해주고 다시 설치하는 작업을 반복해야 하나요?



이러한 문제점 때문에 대부분의 개발자들은 '가상환경'이라는 시스템을 이용한답니다. 그래서 다음글에서는 아나콘다를 활용하는 '가상환경'시스템에 대해서 알아보도록 할게요! 











[사진 래퍼런스]

사진1

https://pytorch.org/get-started/locally/

사진2

https://1boon.kakao.com/slownews/20161005n

사진3

https://namu.wiki/w/%EB%A6%AC%EB%88%85%EC%8A%A4

사진4

https://nyu-cds.github.io/python-gpu/01-introduction/

사진5

https://m.blog.naver.com/PostView.nhn?blogId=sogangori&logNo=220965933190&proxyReferer=https%3A%2F%2Fwww.google.com%2F

사진6

https://jjeongil.tistory.com/766

사진7

https://venturebeat.com/2020/01/30/openai-facebook-pytorch-google-tensorflow/