개요
windows 11 에서 wsl2를 활용, Tensorflow 개발 환경 세팅 방법을 소개합니다.
WSL 설치
tensorflow를 설치하는 곳은 windows 내부에 만들어질 리눅스 환경(wsl)입니다. wsl2를 먼저 설치해 주어야 합니다.
파워셀을 켜서 아래 명령을 실행시켜 주세요. wsl2가 설치됩니다.
wsl2 설치 후 재부팅을 반드시 해 주세요.
wsl --install
설치가 완료되면 cmd에서 아래 명령어로 wsl2를 사용할 수 있습니다.
wsl.exe
호환되는 파이썬 설치
Tensorflow와 호환되는 파이썬을 설치해 주세요. 설치 방법은 넘어가겠습니다.
아래 링크를 통해 호환되는 파이썬 버전을 확인할 수 있습니다.
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 모두 설치해 주어야 합니다.
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를 추가로 설치. 아래 링크를 따라 설치 진행합니다 .
[ 설치 여부 확인 ]
아래 명령을 통해 그래픽카드가 정상적으로 목록에 출력되는 지 확인
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"
...
]
참고 자료
'소프트웨어 & 클라우드' 카테고리의 다른 글
[Docusaurus] plugin-ideal-images width 문제 해결 (1) | 2024.09.27 |
---|---|
[Docusaurus] 작성 문서 최신 출력 스크립트 (0) | 2024.08.11 |
[Docusaurus] Utterances 다크 모드 적용하기 (0) | 2024.08.10 |
[Docusaurus] Deploy 스크립트 메모 (0) | 2024.08.09 |
[Docusaurus] Github page로 배포하기 (0) | 2024.08.08 |