본문 바로가기
소프트웨어

[Windows] Tensorflow windows 11 WSL2 활용하여 설치하기

by TaeGyeong Lee 2024. 8. 10.

개요 

windows 11 에서 wsl2를 활용, Tensorflow 개발 환경 세팅 방법을 소개합니다. 

 

WSL 설치 

tensorflow를 설치하는 곳은 windows 내부에 만들어질 리눅스 환경(wsl)입니다. wsl2를 먼저 설치해 주어야 합니다.

파워셀을 켜서 아래 명령을 실행시켜 주세요. wsl2가 설치됩니다. 

wsl2 설치 후 재부팅을 반드시 해 주세요.
wsl --install

 

설치가 완료되면 cmd에서 아래 명령어로 wsl2를 사용할 수 있습니다.

wsl.exe

 

호환되는 파이썬 설치 

Tensorflow와 호환되는 파이썬을 설치해 주세요. 설치 방법은 넘어가겠습니다. 

아래 링크를 통해 호환되는 파이썬 버전을 확인할 수 있습니다.

 

pip로 TensorFlow 설치

이 페이지는 Cloud Translation API를 통해 번역되었습니다. pip로 TensorFlow 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드는 TensorFlow의 최신 안정

www.tensorflow.org

 

pip3 설치 

sudo apt update && upgrade
sudo apt install python3-pip

pip3 설치 후 버전 확인 

pip3 --version
# pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

 

NVIDIA 드라이버 설치 

아래 링크를 통해 필요한 드라이버를 모두 설치해 주세요. NVIDIA 드라이버, CUDA Toolkit, CUDA DNN 모두 설치해 주어야 합니다.

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

 

CUDA Deep Neural Network

cuDNN provides researchers and developers with high-performance GPU acceleration.

developer.nvidia.com

 

Tensorflow 설치 

python3 -m pip install tensorflow[and-cuda]

 

[ python setup.py egg_info did not run successfully 에러 발생 시 해결 방법 ] 

pip 업데이트 

python3 -m pip install --upgrade pip

setuptools 업데이트 

pip3 install --upgrade setuptools

 

CUDA for WSL-Ubuntu 설치 

wsl2에 필요한 CUDA를 추가로 설치. 아래 링크를 따라 설치 진행합니다 .

 

CUDA Toolkit 12.1 Downloads

Get the latest feature updates to NVIDIA's proprietary compute stack.

developer.nvidia.com

 

[ 설치 여부 확인 ]

아래 명령을 통해 그래픽카드가 정상적으로 목록에 출력되는 지 확인

nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.07              Driver Version: 546.12       CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3070 ...    On  | 00000000:01:00.0  On |                  N/A |
| N/A   46C    P8              14W /  95W |    594MiB /  8192MiB |      2%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

위와 같이 사용중인 그래픽카드 모델 및 사양이 출력되는 경우, CUDA for WSL-Ubuntu가 정상적으로 설치되었음을 확인할 수 있습니다.

 

Tensorflow 설치 확인  

[ CPU 인식 테스트 ] 

아래와 같이 텐서 객체 반환 시 정상 

python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

# tf.Tensor(-2911.9321, shape=(), dtype=float32)

 

[ GPU 인식 테스트 ]

아래와 같이 GPU 항목이 출력되면 정상 

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

# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

 

[ 학습 테스트 ]

아래 예제 학습 테스트 실행 동안 GPU를 사용하는 경우 정상 

import tensorflow as tf

cifar = tf.keras.datasets.cifar100
(x_train, y_train), (x_test, y_test) = cifar.load_data()
model = tf.keras.applications.ResNet50(
    include_top=True,
    weights=None,
    input_shape=(32, 32, 3),
    classes=100,)

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
model.fit(x_train, y_train, epochs=5, batch_size=64)

 

[참고] Vscode로 wsl2 접속하기 

vscode extension인 REMOTE DEVELOPMENT 설치. 설치 후 vscode 상단 중앙에서 > wsl 입력하여 wsl 접속 시도

 

[ 파이썬 인터프리터 확인 ]

windows에 설치된 python 인터프리터가 아니라, wsl에 tensorflow 설치를 담당한 파이썬 인터프리터를 선택해야 합니다. 한 운영체제에서 파이썬 버전 여러 개를 바꾸어 가며 개발하시는 분들이 자주 놓치시는 부분입니다. 

import tensorflow as tf
from tensorflow.python.client import device_lib

print(device_lib.list_local_devices() )

위 코드를 wsl 파이썬으로 실행한 경우, 아래와 같이 GPU 정보가 인식되어야 합니다. 

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 364653326627053698
xla_global_id: -1
,
name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 5848956928
locality {
  bus_id: 1
  links {
  }
}
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 3070 Ti Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.6"
...
]

 

참고 자료 

 

GPU 지원  |  TensorFlow

GPU 지원 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 참고: GPU 지원은 CUDA® 지원 카드가 있는 Ubuntu 및 Windows에 제공됩니다.TensorFlow GPU 지원에는 다양한 드

www.tensorflow.org

 

Python Release Python 3.9.13

The official home of the Python Programming Language

www.python.org

 

CUDA Deep Neural Network

cuDNN provides researchers and developers with high-performance GPU acceleration.

developer.nvidia.com

 

pip로 TensorFlow 설치

이 페이지는 Cloud Translation API를 통해 번역되었습니다. pip로 TensorFlow 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드는 TensorFlow의 최신 안정

www.tensorflow.org

 

PIP 사용법 - 설치, 제거, 일괄 업그레이드

pip(Pip Installs Packages)는 파이썬에서 패키지를 관리하는 프로그램이다. pip는 파이썬을 설치하면 기본으로 설치되어 있다. 1) 패키지 설치 >> pip install 패키지 예) >> pip install PySide2 2) 패키지 삭제 >> p

www.jbmpa.com