티스토리 뷰

반응형

며칠 전 친구에게 NVIDIA GeForce RTX 3070 그래픽카드를 선물로 받았다.

인공지능이나 머신러닝 관련해서 공부를 하고 싶다는 이야기를 했더니, 덜컥 주길래 받아버렸다.

저질러버렸으니, TensorFlow 설치부터 시작해보자.

우선 이 글을 따라하려면, Python이 설치가 되어 있어야 한다. Windows 10 환경의 PC를 사용하고 있기 때문에 편의상 Anaconda ( https://www.anaconda.com/ )를 이용해서 패키지 설치를 했다.

TensorFlow 설치를 위해서 Conda Prompt를 실행했다. 가상 환경을 만들고 설치하는 것이 나중에 관리를 위해서 좋다고는 하는데, 어차피 개인 컴퓨터이고, 문제가 생겨도 해결이 즐거울 것 같아서 가상환경이 아닌 상태로 설치해보기로 했다. https://www.tensorflow.org/install/pip?hl=ko 참고.

Windows 10 시작메뉴에서 Anaconda Prompt를 실행하자. CMD.exe (둘 중 아래꺼..)를 쓰자.. POWER SHELL을 쓰지 않는 것을 권하게 된 이유는 맨 아래 (스포) 나옴.

Conda Prompt에 다음 명령어를 입력하면, 설치가 시작된다. 크으으....

pip install tensorflow

Conda Prompt에서 TensorFlow 설치하기.

아! 설치 전에, NVIDIA 그래픽카드를 사용하고 있다면, 다음 소프트웨어를 미리 설치해두자. (GPU 가속을 활용할 수 있다) https://www.tensorflow.org/install/gpu?hl=ko 참고.

  • NVIDIA GPU 드라이버 (아마도 설치하지 않았을까 싶지만 그래도 확인)
  • CUDA Toolkit: 11.2 이상 버전(TensorFlow 2.5.0 이상)을 지원한다고 한다.
  • CUPTI: CUDA Toolkit과 함께 제공된다고 한다.
  • cuDNN SDK: NVIDIA 개발자 등록이 필요하다. 계정을 생성하면 다운로드가 시작된다. 이거 보면서 '역시 엔비디아는 소프트웨어 기업이지' 했다..

여기까지 하면 설치는 성공이다.

다음 코드로 어디서 텐서플로가 실행되는지 확인했다.

import tensorflow as tf
tf.debugging.set_log_device_placement(True)

# 텐서 생성
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)

print(c)

흠,, CPU에서 실행된다.

추가로, tensorflow-gpu도 설치했다.

pip install tensorflow-gpu

그런데, 계속 어떤 폴더에 접근 권한이 없다는 메시지가 나타났다. Conda installer를 사용하면 다를까 싶어서 pip로 설치했던 tensorflow, tensorflow-gpu를 모두 삭제 (pip uninstall) 하고, 다음과 같은 conda 명령어를 입력했다.

conda install tensorflow

이 다음에도 CPU에서만 실행이 되길래 다음도 한번 재시도.

conda install tensorflow-gpu

흠.. 여기까지 해도 여전히 CPU에서 실행된다. cuDNN을 제대로 설치하지 않았던 것인가 해서 재설치 중... (https://developer.nvidia.com/rdp/cudnn-download)

설치 방법이 좀 이상하다.. https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequisites-windows 에 나온 방법대로 하는데, 요약하자면, 다운로드 받은 압축파일의 압축을 풀어서 내용물을 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.X에 옮기라는 것이다. (자세한 내용은 위 페이지 참고)

cuDNN을 설치하는 방법

그 다음, CUDA_PATH를 설정해준다.

여기서 '환경 변수' 클릭. 환경변수에 CUDA_PATH 입력. 값은 CUDA가 설치된 경로로 다음과 같이 입력한다.

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x

글쓴이는 11.5에 설치되어 있어서 아래 그림과 같이 입력되어 있다. (아마 이전 설치때 된듯?)

환경 변수 PATH에 경로를 추가하라는 TensorFlow 매뉴얼의 부분을 빼먹은 것 같아서 다음과 같이 추가했다.

Path 변수에 NVIDIA 라이브러리 경로를 추가.

매뉴얼 중 설명은 다음과 같이 되어 있음. https://www.tensorflow.org/install/gpu?hl=ko 

Conda로 설치한 tensorflow들을 모두 제거하고 다시 PIP로 설치해본다.

여전히 oneAPI를 이용한 CPU 가속만을 이용하고 있다... 혹시 PowerShell을 이용한 것이 문제였나 싶어서 cmd.exe를 관리자 권한으로 실행해서 다시 시도.. (pip install tensorflow)

설치에 오류 메시지가 사라졌다!!! Power Shell은 버리자....

예제 코드 실행도 성공!

IPython 환경에서 실행해도, GPU를 잘 잡는 것 같기는 한데, CUDA가 아닌 oneAPI를 사용하는 것 인가 하는 메시지..

요약: 여러분, 매뉴얼 잘 읽으시고, PowerShell 말고, 전통있는 CMD.exe 씁시다.

 

추가: Keras를 이용한 이미지 분류 예제(https://www.tensorflow.org/tutorials/keras/classification?hl=ko)로 테스트 해보니, 그래픽 가속이 잘 작동한다.

신발을 신발로 분류하기..

 

반응형
댓글