Anaconda Tensorflow GPU 버전 설치 (2023.01 수정)

Setting Log

작년과 최근 성공한 세팅 정보 2가지만 남겨두었다.

오히려 최근 세팅에서 (무엇이 문제인지 몰라서) CUDA 버전을 낮췄다.

 

<2023.1.28>

  • RTX8000으로 사용하던 컴퓨터에서 잘되던 GPU 학습이 되지 않아서, 여러 버전을 맞춰서 성공
  • 아마 tensorflow 의 최신버전과 뭔가 맞지 않은 탓이라고 생각함
  • GPU: Quadro RTX8000
    • 473.81-quadro-rtx-desktop-notebook-win10-win11-64bit-international-dch-whql.exe
    • cuda_11.4.4_472.50_windows.exe
    • cudnn-11.4-windows-x64-v8.2.2.26.zip
  • Anaconda 3
    • conda create -n tf python=3.10
  • Tensorflow 2.9.1
    • 최신 버전은 2.10인데, tensorflow-gpu를 tensorflow 패키지로 통합함. 그런데 이것 때문인지 안돌아감
    • pip install tensorflow-gpu==2.9.1

<2022.5.31>


0. GPU History

  1. 2023.01: Quadro RTX8000
  2. 2022.05: Quadro A6000

1. Visual Studio 설치

  • 최신VS 2022가 아닌 이전 버전 VS 2019를 설치함
    • https://visualstudio.microsoft.com/ko/downloads/

2. Anaconda3 설치 (Python 3.x)

  • Anaconda 설치 후 anaconda prompt로 들어가서 업데이트
conda update conda
conda update --all ("-"두개)

3. CUDA 툴킷과 cuDNN 설치

  • nVidia 드라이버와 CUDA 호환 버전을 확인해볼 수 있다.
    • https://docs.nvidia.com/deploy/cuda-compatibility/#minor-version-compatibility
    • https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

[2023.01]

  • Tensorflow 문제인지 CUDA 문제인지 명확하지 않으나 tf.config.list_physical_devices() 출력에서 CPU만 나오는 문제가 발생
  • CUDA 11.4.4 / cuDNN 8.2.2 로 세팅해서 성공함
    • cuda_11.4.4_472.50_windows.exe
    • cudnn-11.4-windows-x64-v8.2.2.26.zip
  • 환경 변수에서 CUDA\v11.4\bin / include / lib\x64 폴더를 추가한다.

[2022.05]

  • CUDA 11.6.2 / cuDNN 11.6 으로 설치함 – cuDNN은 CUDA 폴더에 덮어씌움
    • https://developer.nvidia.com/cuda-11-6-2-download-archive
    • https://developer.nvidia.com/cudnn
    • Windows prompt에서 아래 명령어를 통해 환경변수 추가
> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin;%PATH%
> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\CUPTI\lib64;%PATH%
> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include;%PATH%

4. Anaconda 환경 생성

Conda prompt로 진행하였다.

conda create -n tf pip python=3.10
conda activate tf
  • cuda는 이름이다. -n 뒤에 원하는 이름으로 바꾸자
  • 이후 아래 패키지 설치
  • 버전 세팅을 안할 경우 2.10으로 설치되며, 이 경우 tensorflow-gpu 패키지는 없다.
pip install tensorflow-gpu=2.9.1

5. 예제 실행

  • 간단하게는 python을 실행시킨 뒤
import tensorflow as tf
tf.test.is_built_with_cuda()

tf.config.list_physical_devices('GPU')
#tf.test.is_gpu_available('GPU') 위의 함수로 바뀐다고 함 (2.4.0)
tf.sysconfig.get_build_info()
import tensorflow as tf
from tensorflow import keras

import numpy as np
import matplotlib.pyplot as plt

print(tf.__version__)

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()

train_images = train_images / 255.0
test_images = test_images / 255.0

plt.figure(figsize=(10,10))
for i in range(25):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[train_labels[i]])
plt.show()

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=5)

test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)

print('\n테스트 정확도:', test_acc)

Reference : https://medium.com/@hussnainfareed/setup-an-environment-for-machine-learning-and-deep-learning-with-anaconda-in-windows-5d7134a3db10

0 Shares:
6 comments
  1. Window CUDA설치로 검색해 들어와 좋은 참고가 되었습니다.
    저도 어느 병원의 전임의라 더욱 반갑네요.
    하고자 하시는 일 건승하시길!

  2. 너무 감사합니다 ㅠㅠ
    어제부터 GPU로 설치하는데 어려움을 겪어 포맷 후, 이 글을 보고 따라하니 다른 게시물에서는 없던
    “cusolver64_11.dll을 cusolver64_10.dll 으로 이름을 바꿔줘야 함 (cuda/v11.1/bin)”
    덕분에 해결했습니다.

    감사합니다!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.