728x90
반응형

지난 포스트에서 기계학습(Machine Learning)에 대해 간략하게 알아보았다.
이번 포스트에선 기계학습을 수월하게 할 수 있게 해주는 텐서플로우(Tensorflow)에 대해 알아보도록 하자.

 

 

텐서플로우(Tensorflow)란?

  • 텐서플로우는 구글에서 2015년에 공개한 기계학습 라이브러리로, 일반인들도 기계학습을 사용할 수 있을정도로 난이도가 낮고, 아주 강력한 성능을 가지고 있다.
  • 단, 텐서플로우는 딥러닝 알고리즘인 인공신경망이 한 번 학습되기 시작하면 신경망의 구조가 고정되어버리기 때문에 특정 프로젝트에 최적화하여 사용하는데 한계가 있다.
  • 최적화까지 감안하여 기계학습을 하기 위해선, 신경망의 구조까지 스스로 학습하며 변하는 페이스북 인공지능팀에서 개발한 파이토치(PyTorch)를 사용해야한다(텐서플로우와 파이토치의 성능차이는 상당히 큰 편이다).
    • 텐서플로우는 참고 자료가 더 많고, 사용자가 파이토치보다 텐서플로우가 많은 편이므로, 텐서플로우를 먼저 학습하고, 그 후에 파이토치를 학습할 예정이다.
  • GPU, CPU 2가지 버전이 존재하며, GPU는 tensorflow-gpu라는 패키지를 따로 다운로드 받아야한다.
    • GPU는 NVIDIA의 CUDA를 사용하므로, NVIDIA 그래픽 카드가 필수이다.
  • 본 포스트에서는 텐서플로우 Version 2.0.0으로 학습할 예정이다.
  • 텐서플로우2는 Keras를 기반으로 작동한다.

 

※ CPU와 GPU를 왜 구분해서 사용하는 것일까???

  • CPU와 GPU의 차이를 간단하게 설명하자면 다음과 같다.
  • CPU는 아~~~주 머리가 좋은 친구로, 전교 10등 안에 들어가는 수학 천재인 친구다. 수능에서 4점짜리 문제들도 쉽게 풀정도로 어려운 수학 문제도 큰 힘을 들이지 않고 풀 수 있는 친구지만, 당연히 숫자가 적고, 한 번에 할 수 있는 일이 많지가 않다.
  • GPU는 기본적인 수학 능력을 갖춘 평범한 친구들이다. 수능에서 2점짜리 문제 같이 간단한 수학 문제라면 손 쉽게 풀 수 있지만, 어려운 수학 문제를 푸는데는 한 세월이 걸린다. 숫자가 1,000명 정도로 엄청나게 많다.
  • 자, 이를 더 간추려 말해보면 CPU는 머리가 좋지만 숫자가 적고, GPU는 머리는 평범하지만 숫자가 많은 친구들이다.
  • Python이나 R은 기본적으로 CPU 연산을 하며, CPU 연산을 하다보니 아무리 어려운 문제라 할지라도 크게 힘들이지 않고 풀 수 있지만, 머신러닝에서는 이야기가 달라진다. 딥러닝에서 사용되는 가장 대표적인 알고리즘인 인공신경망은 기본적으로 행렬 연산을 통해 계산되는데, 이러한 행렬 연산은 더하기, 빼기, 곱하기, 나누기와 같은 기본적인 사칙연산을 수십 만번 실시한다고 생각하면 된다.
  • 자, 사칙연산 수십 만번을 머리가 엄청 좋은 한 명에게 시키는 것과 평범하지만 사칙연산은 충분히 해내는 천 명에게 시키는 것, 이 둘 중 무엇이 더 효율적일까?? 당연히 사칙연산을 충분히 해낼 수 있는 천 명에게 문제를 주는 것이 훨씬 빠르지 않겠는가.
  • 이처럼 기계학습의 특징은 어려운 연산도 물론 있지만, 이 어려운 연산은 CPU에게 맡기면 되고, 쉬운 연산은 GPU에게 맡기는 방식을 사용한다. 즉, 컴퓨터의 자원을 이분화시켜 사용하는 것이 기계학습의 특징이다.

 

 

 

텐서플로우(cpu) 설치 방법

  • 텐서플로우만 설치하는 것은 난이도가 상당히 낮은 편이다.
  • 텐서플로우는 버전 2.0.0을 설치할 것이다.
    1. PyCharm의 UI를 이용해서 설치하기
      File > Settings > +버튼 >  tensorflow 검색 및 선택 > Specify version 체크 > 드롭박스에서 버전 2.0.0으로 선택 > Install Package 클릭
    2. 터미널에서 설치하기(아나콘다 가상환경을 만든 경우 *추천)
      cmd 실행 > conda env list(가상환경 목록 확인) > conda activate 가상환경이름 > pip install tensorflow==2.0.0

 

 

 

텐서플로우-gpu 설치 방법

  • tensorflow-gpu 설치를 위해서는 몇 가지 사전 작업이 필요하다.
    1. NVIDIA 그래픽 카드
    2. CUDA Toolkit 10.0 Version 설치
    3. cuDNN 설치
    4. PATH 설정
  • tensorflow-gpu는 gpu를 이용해서 연산하므로, 컴퓨터 환경에 gpu 셋팅을 해줘야한다.
  • NVIDIA 그래픽 카드가 설치되어있다는 전재하에 설치 해보도록 하겠다.
  • CUDA Toolkit의 버전은 11까지 나왔지만, 아직 호환성에 문제가 있는지 제대로 설치가 되지 않는다. 또한, 우리는 텐서플로우 버전 2.0으로 작업할 예정이므로, 이에 맞는 CUDA Toolkit Version 10.0을 사용해보도록 하자.
  • 설치 환경은 Windows이다.

 

 

1. CUDA Toolkit을 설치해보자.

CUDA Toolkit 10.0 버전 싸이트로 들어가자

 

CUDA Toolkit 10.0 Archive

Select Target Platform Click on the green buttons that describe your target platform. Only supported platforms will be shown. Operating System Architecture Distribution Version Installer Type Do you want to cross-compile? Yes No Select Host Platform Click

developer.nvidia.com

 

내 환경에 맞는 버전으로 다운로드 받자

  • Windows 환경에서 사용할 예정이다.
  • Windows는 10을 사용하고 있다.
  • 오프라인 환경에서도 사용할 수 있도록 Local로 다운로드 받겠다.
    (인터넷이 되는 환경이라면, 시간이 오래걸리므로 exe(network)로 다운로드 받도록 하자.)

 

이제 설치를 해보자.

  • CUDA  설치는 크게 어렵지 않다.
  • 따로 경로나 설정에서 손을 볼 것은 없으므로, 그냥 쭉 진행하면 된다.

 

 

 

2. cuDNN을 설치해보자.

 

 

NVIDIA cuDNN

NVIDIA cuDNN The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, norma

developer.nvidia.com

  1. Download cuDNN을 클릭한다.
  2. cuDNN은 로그인을 해야만 설치 가능하므로, 아이디가 없다면, 아이디를 만들고 로그인하도록 하자.

 

 

CUDA와 내 환경에 맞는 버전으로 설치하자.

  • CUDA v10.0으로 설치하였으므로, cuDNN은 v7.6.5.로 다운로드 받겠다.
  • Windows 10 환경으로 설치하겠다.

 

 

  • cuDNN을 CUDA가 설치된 위치에 덮어씌우도록 하자.
    • 만약  CUDA를 설치할 때, 따로 경로를 손대지 않았다면 아래 경로에 덮어 씌우면 된다.
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
    • 위 경로에 cuDNN 압축파일을 해제하여 나온 파일들을 덮어씌우자.

 

 

 

3. PATH를 설정해주자.

  • cmd에 들어가자.
  • 아래와 같게 타이핑 해주자
    • SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;%PATH%
    • SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64;%PATH%
    • SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include;%PATH%
    • SET PATH=C:\tools\cuda\bin;%PATH%

 

 

 

위까지 작업을 마치면, tensorflow-gpu를 설치할 환경이 완료된 것이다. 만약 위 셋팅을 마쳤음에도 tensorflow-gpu가 설치되지 않는다면, Visual Studio를 설치해주거나 업데이트 해주도록 하자.

자 지금까지 텐서플로우를 사용할 수 있는 환경 셋팅을 모두 완료해보았다. 텐서플로우 설치는 pip install을 이용해서 설치하면 되며, 이에 대한 내용은 python 카테고리에서 패키지 설치법을 확인해보도록 하자.

다음 포스트에서는 텐서플로우를 쓰는법에 대해 차근차근 알아가보자.

728x90
반응형

+ Recent posts