TensorFlow 2.1 + Python 3.10.16 + CUDA 설치 가이드

TensorFlow 2.1을 Python 3.10.16 환경에서 설치하고 GPU 가속을 위한 CUDA와 cuDNN을 설정하는 방법을 다룹니다. 초보자도 쉽게 따라할 수 있도록 주요 개념을 설명하며, 코드 실행을 통해 설치 및 환경 설정 과정을 직접 확인할 수 있습니다.

저도, 처음 시작하면서 많은 시도 끝에 나름대로 정리를 해보았습니다.

TensorFlow란?

TensorFlow는 Google이 개발한 오픈소스 딥러닝 라이브러리로, 인공지능(AI) 모델을 학습하고 실행하는 데 사용됩니다. GPU를 지원하여 대규모 연산을 빠르게 처리할 수 있으며, TensorFlow 2.0 이후부터는 GPU와 CPU를 단일 패키지(tensorflow)로 통합해 설치가 간편해졌습니다.

  • GPU가 있는 환경: 자동으로 GPU를 사용합니다.
  • GPU가 없는 환경: CPU 모드로 실행됩니다.

단, TensorFlow는 특정 CUDA 및 cuDNN 버전이 필요하므로 설치 전에 호환성을 확인해야 합니다.

TensorFlow와 CUDA/cuDNN 호환성

TensorFlow 버전Python 버전CUDA 버전cuDNN 버전
TF 2.11Python ≥3.8, ≤3.10CUDA 11.2cuDNN 8.1
TF 2.10Python ≥3.7, ≤3.10CUDA 11.2cuDNN 8.1
TF 2.9Python ≥3.7, ≤3.10CUDA 11.2cuDNN 8.1
TF 2.8Python ≥3.7, ≤3.9CUDA 11.2cuDNN 8.1
TF 2.7Python ≥3.6, ≤3.9CUDA 11.2cuDNN 8.1
TF 2.6Python ≥3.6, ≤3.9CUDA 11.2cuDNN 8.1
TF 2.5Python ≥3.6, ≤3.9CUDA 11.2cuDNN 8.x
TF 2.4Python ≥3.6, ≤3.9CUDA 11.0cuDNN 8.x

참고: 이 글에서는 TensorFlow 2.10을 기준으로 진행하며, Python 3.10과 CUDA 11.2, cuDNN 8.1을 사용합니다. 최신 CUDA(예: 12.x)는 공식 지원되지 않으니 주의하세요.

새로운 conda 환경 부터 설치합니다

아래는 conda와 pip를 활용해 TensorFlow 2.10과 GPU 환경을 설정하는 단계입니다. (※ anaconda 설치 필수!)

1. 새로운 conda 환경 생성 (Python 3.10.16)

conda create -n tf21_p31016 python=3.10.16 -y

2. 환경 활성화

conda activate tf21_p31016 
conda_activate_py31016

3. NVIDIA 드라이버 확인

Stable Diffusion을 GPU에서 실행하려면 NVIDIA 드라이버가 설치되어 있어야 합니다. 먼저 드라이버가 정상적으로 동작하는지 확인하세요.

nvidia-smi

정상적으로 GPU 정보가 출력되면 다음 단계로 이동합니다.

nvidia-smi
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1 -y
conda_install_cudatoolkit_cudnn

4. TensorFlow 2.10 및 함께 사용할 필수 라이브러리 설치

TensorFlow 2.10과 호환되는 NumPy, Matplotlib, pandas 버전을 고려해야 합니다. 각 라이브러리에 대한 간단한 설명과 호환성 최적화 버전으로 설치방법을 안내해 드립니다.

NumPy: 데이터를 수학적으로 다루는 데 필수적인 라이브러리입니다. 예를 들어, 인공지능 모델의 입력 데이터를 행렬 형태로 표현하고, 연산을 수행할 때 활용됩니다.

import numpy as np

# 3x3 행렬 생성
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("NumPy 행렬:")
print(matrix)

실행 결과

NumPy 행렬:
[[1 2 3]
[4 5 6]
[7 8 9]]

Pandas: 데이터를 정리하고 분석하는 데 유용합니다. 실전 프로젝트에서는 CSV, 데이터베이스 등에서 데이터를 가져와 모델 학습을 위해 가공하는 과정이 필요합니다.

import pandas as pd

# 간단한 데이터 생성
data = {'이름': ['철수', '영희', '민수'], '점수': [85, 90, 78]}
df = pd.DataFrame(data)
print("Pandas 데이터프레임:")
print(df)

실행 결과

이름 점수
0 철수 85
1 영희 90
2 민수 78

Matplotlib: 데이터를 시각화하는 라이브러리입니다. 모델 학습 결과를 그래프로 표현하면 학습 진행 상황을 보다 쉽게 이해할 수 있습니다.

import matplotlib.pyplot as plt

# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 50]

# 그래프 그리기
plt.plot(x, y, marker='o')
plt.xlabel('X 축')
plt.ylabel('Y 축')
plt.title('간단한 선 그래프')
plt.show()

실행 결과

데이터를 처리하고 분석하며, 그 결과를 시각적으로 확인하는 과정은 매우 중요합니다. 이를 위해서는 NumPy, Matplotlib, Pandas와 같은 패키지들의 호환 가능한 버전을 사용하는 것이 필수적입니다. 이러한 패키지들을 한 번에 설치하려면 다음 명령어를 사용할 수 있습니다.

pip install tensorflow==2.10.0 numpy==1.23.3 pandas==2.2.3

※참고 : 왜 pip를 사용할까?

  • pip는 TensorFlow 공식 배포 채널로, 최신 버전과 완전한 기능을 제공합니다.
  • conda 기본 채널은 업데이트가 느리거나 일부 기능이 제한될 수 있습니다.

좀더, 자세한 설명은 다음 링크를 참고하시면 좋습니다.

Conda 와 Pip 차이

이제 최종적으로 설치 확인 및 GPU 사용여부가 제대로 출력 되는지 확인 해볼까요?

5. 설치 확인 및 GPU 사용 여부 확인

python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

GPU 장치 목록이 출력되면 정상적으로 설정된 것입니다.

※ 추가 : 만약 패키지 설치 중 에 다음과 같이 Build Tools for Visual Studio 에러가 발생한다면, Visual Studio 2022 Build Tools 를 추가 설치해야 합니다!

building library “npymath” sources
error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio”: https://visualstudio.microsoft.com/downloads/ “

이러한 에러가 발생하면 다음 Visual Studio Build Tools 를 추가로 설치하세요.

6. TensorFlow 설치완료 여부 확인

import tensorflow as tf 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt

print("TensorFlow version:", tf.__version__) 
print("NumPy version:", np.__version__) 
print("Pandas version:", pd.__version__)
print('CUDA Available:', tf.test.is_built_with_cuda())"
print(tf.config.list_physical_devices('GPU'))"
print_gpu

축하합니다! 이제, ​Python 3.10.16 환경에서 TensorFlow 2.10과 CUDA 11.2가 정상적으로 동작하며, TensorFlow에서 GPU 가속을 활용하여 딥러닝 모델을 학습할 수 있습니다. ​

위의 스크립트를 실행하여 각 라이브러리의 버전을 확인하고, CUDA 사용 가능 여부와 GPU 장치 목록을 출력합니다. 모든 정보가 정상적으로 출력되면, TensorFlow와 관련된 라이브러리들이 올바르게 설치되었으며, GPU 가속을 활용할 수 있는 환경이 구축되었음을 의미합니다. 추가 질문이 있다면 댓글로 남겨주세요!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다