KimbgAI

tqdm 활용 with dataloader 본문

python

tqdm 활용 with dataloader

KimbgAI 2022. 11. 7. 18:11
반응형

tqdm은 반복문에서 현재 어느 정도까지 진행이 되었는지 시각적으로 나타낼 수 있어 인내심을 길러주는데 아주 유용하다

 

특히나, pytorch에서 dataloader를 활용할때 자주 사용되는데, 여러 옵션을 넣어주면 더 편하게 볼 수 있어 좋다.

 

tqdm 활용하여 training 과정을 시각화

from tqdm.notebook import tqdm
import time

dataloader = range(100)
epoch_iterator = tqdm(iters, desc="Training (X / X Steps) (loss=X.X)", dynamic_ncols=True)
global_step, max_iterations, loss = 0, 100, 3
for cnt, i in enumerate(epoch_iterator):
    time.sleep(0.1)
    global_step = cnt
    loss = (100-i)/100
    epoch_iterator.set_description("Training (%d / %d Steps) (loss=%2.5f)" % (global_step, max_iterations, loss))

위 코드는 대략적인 데이터로드의 flow을 나타내고 있다.

tqdm 옵션 중 desc를 반복문 중에 다이나믹하게 바꿀수 있다.

반복분 안에  tqdm 인스턴스의 attribute 중 set_description을 설정해주면 된다!

 

만약 tqdm.notebook에서 아래와 같은 에러가 뜬다면, 설치나 업데이트가 필요하다.

IProgress not found. Please update jupyter and ipywidgets.

 

pip을 쓴다면
$pip install ipywidgets
$jupyter nbextension enable --py widgetsnbextension
 
conda를 쓴다면
$conda install -c conda-forge ipywidgets

주피터를 사용하고 있는 중이면, 설치 후 커널 재시작을 해주면 된다.




 

끝!

반응형
Comments