개발 환경은 다음과 같습니다.
- WSL
- Ubuntu 20.04
- venv Python Version: 3.10.15
matplotlib.pyplot
을 활용해서 이미지 데이터를 출력해서 직접 검토하고자 하였습니다. 코드는 다음과 같습니다.
figure = plt.figure(figsize = (8, 8))
cols, rows = 3, 3
for i in range(1, cols * rows + 1):
sample_idx = torch.randint(len(training_data), size = (1, )).item()
img, label = training_data[sample_idx]
figure.add_subplot(rows, cols, i)
plt.title(labels_map[label])
plt.axis('off')
plt.imshow(img.squeeze(), cmap = 'gray')
plt.show()
Traceback (most recent call last):
File "/home/ih9511/pytorch/dataloader.py", line 19, in <module>
matplotlib.use('TkAgg')
File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/__init__.py", line 1255, in use
plt.switch_backend(name)
File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
module = backend_registry.load_backend_module(newbackend)
File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
return importlib.import_module(module_name)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
from . import _backend_tk
File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/backends/_backend_tk.py", line 9, in <module>
import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'
WSL Ubuntu 20.04의 경우, 기본적으로 GUI가 제공되지 않기 때문에 따로 모듈을 설치해주어야 합니다.
sudo apt install python3.10-tk
sudo apt install PyQt6
이후, matplotlib에서 설치한 패키지들을 활용하도록 backend 설정을 변경해줍니다.
matplotlib.use("TkAgg")
이후, 정상적으로 이미지가 출력되는 것을 확인할 수 있습니다.