[WSL2] 윈도우에서 TensorFlow-2.13 사용하기

MOON·2025년 2월 21일

GPU 환경 & 딥러닝

목록 보기
4/4

해당 게시물은 윈도우os에서 tensorflow 2.10 이상의 버전 사용을 위해 wsl 및 ubuntu를 활용합니다.

centerNet 훈련 중, tfa의 사용이 필요하다는 것을 깨달았다.
tfa는 tensorflow 2.12 이상 2.15미만 버전에서만 지원된다고 한다. (해당 경고 메세지 캡처를 못했음.)

하지만 윈도우에서 사용 가능한 텐서플로우는 2.10이 가장 최신 버전이다.

따라서, linux 환경을 구축하고 cuda를 설치해보고자 한다.


1. WSL2 및 Ubuntu 설치


2. CUDA 및 cuDNN 설치

앞서 언급했던 것처럼 필요한 텐서플로우 버전은 2.12 ~ 2.14이다. 그에 따라 요구되는 파이썬, CUDA, cuDNN 버전들은 다음과 같다.

내 경우에는 텐서플로우 2.13 버전을 깔아보고자 한다. 따라서, CUDA 11.8, cuDNN 8.6을 설치할 것이다.

2.1.1. Toolkit 11.8 설치

$ wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
$ sudo sh cuda_11.8.0_520.61.05_linux.run

링크에서 사진과 같이 선택한 후, Base Installer에 뜨는 커맨드를 순차적으로 Ubuntu에서 실행해줍니다.
Version은 기존에 설치한 Ubuntu 버전을 선택합니다.
(CUDA Toolkit 11.8은 Ubuntu 18.04, 20.04, 22.04에 대해서만 지원.)

+ sudo sh cuda_11.8.0_520.61.05_linux.run 에러가 나는 경우
두번째 커맨드에 대해서 에러가 나는 경우, gcc 버전의 확인이 필요합니다.
CUDA 11.8은 GCC 10 이하 버전을 요구합니다.
만약 gcc 버전이 너무 최신이면 다운그레이드가 필요할 수 있습니다.

✅ 해결 방법: gcc-10 설치
아래 명령어를 실행하여 CUDA와 호환되는 gcc-10 버전을 설치합니다.
```
sudo apt update
sudo apt install gcc-10 g++-10 -y
```
설치 후, 기본 gcc 버전을 gcc-10으로 설정합니다.

```
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100
```

이제 다시 버전을 확인해줍니다.
```
gcc --version
```
출력된 버전이 gcc-10.x.x이면 정상입니다.
  ![](https://velog.velcdn.com/images/ansdnjs00/post/e9c8579f-42b2-4f59-bcd5-c3c52f1fc737/image.png)

</div>

...

 sudo sh cuda_11.8.0_520.61.05_linux.run

해당 코드가 실행되고 나면 다음과 같이 진행됩니다. CUDA로 시작되는 것들만 체크해서 설치를 시도합니다.


위와 같이 설치가 완료되었습니다.

2.1.2. 환경변수 설정

nano ~/.bashrc

커맨드 실행 후, 뜨는 문서의 맨 아랫줄에 다음을 복붙합니다.

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

Ctrl+X > Y > Enter로 저장하고 나옵니다.

$ source ~/.bashrc

실행하면 수정 사항이 적용됩니다.

이로써 환경 변수 적용이 완료되어 , nvcc --version 커맨드 실행 시 다음과 같이 출력이 나옵니다. 성공적으로 CUDA 11.8을 설치했음이 확인됩니다.

2.2. cuDNN 8.6 설치

링크에서 다음을 찾아줍니다.

로컬 윈도우의 다운로드 창을 보면 cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz가 있을 것입니다.
이를 우분투 서버로 옮겨주기 위해 powershell에서 다음 커맨드를 실행합니다.

wsl cp /mnt/c/Users/[사용자명]/Downloads/cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz ~/


위와 같이 우분투에서 폴더 확인이 된다면 압축을 해제해야 합니다.

tar -xvf ~/cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz

이제 cudnn 관련 파일들을 /usr/local/cuda/ 경로로 복사하기 위해 아래 명령어들을 순서대로 실행합니다.

sudo cp -P cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/* /usr/local/cuda/include/
sudo cp -P cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

또한 다음과 같이 환경변수를 적용합니다.

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

다음 커맨드를 실행했을 때, 이미지와 같이 출력이 된다면 cuDNN 설치는 성공적입니다.

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2


3. TensorFlow 설치

3.1. 가상환경 구축

Ubuntu 22.04 (LTS) 설치 시 자동적으로 Python 3.10.12가 내부에 설치됩니다. 윈도우에서 설치한 파이썬과는 별도의 개념이므로 참고합시다.

바로 파이썬 가상환경을 만들도록 하겠습니다.
파이썬 3.10은 텐서플로우-2.13 설치에 있어 유효한 버전이므로 별도로 파이썬 설치를 하지 않겠습니다.

먼저 python3-venv 패키지를 설치하도록 합니다. 이미 설치했다면 다음으로 넘어갑니다.

sudo apt update
sudo apt install python3-venv

그리고 원하는 경로에 파이썬 가상환경을 만듭니다.

python3 -m venv [가상환경]

다음과 같이 가상환경에 진입합니다.

source [가상환경]/bin/activate

3.2. 텐서플로우-2.13.0 설치

가상환경 내부에서 다음을 실행합니다.

pip install tensorflow==2.13.0

다음과 같이 설치된 텐서플로우가 gpu를 잘 활용하는지 확인해봅니다.

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

출력 마지막에 [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]와 같은 문구가 보인다면 성공적입니다.


작성하다 보니 점점 존댓말이 되어 버렸다.
다음은 tensorflow-addons의 활용에 대해서 알아보겠습니다.

profile
현직 AI 개발자 | 게임을 좋아합니다.

0개의 댓글