티스토리 뷰

728x90
반응형

딥러닝 모델을 학습시킬 때 학습 진척도(progress bar)를 살필 수 있는 방법으로 tqdm 패키지가 사용된다.

 

1. tqdm 패키지 설치

!pip install tqdm

 

2. 기본 예제

  • 기본적으로 tqdm에 iteration이 가능한 객체를 입력하면 된다.  tqdm(range(10))
from tqdm import tqdm
import time

n = 10
for i in tqdm(range(n)):
    time.sleep(1)
  • 다른 설정이 없다면 progress bar는 진행도와 시간이 표시된다.
  • 진행도(%) | 완료 횟수(i) / 전체 반복 횟수(n) [현재까지 걸린 시간 < 완료까지 남은 예상시간, iteration당 걸린 시간] 

 

3. 옵션

1) 많이 사용되는 옵션: desc, postfix, unit

  • desc는 progress bar의 prefix(전위표기법)으로 앞단에 표기된다.
  • postfix(후위표기법)은 [] 대괄호 내부 우측에 추가되어 나타난다. 
  • unit은 iteration의 단위를 나타내는 파라미터이다. batch 당 몇 초가 걸리는지와 같이 단위를 명확히 할 때 사용한다.

 

2) 기타 옵션: ncols, ascii, leave 등

  • ncols는 progress bar의 길이를 조절하는 역할을 한다.
  • ascii는 progress bar의 모양을 결정한다. " *"으로 변경하여 표시할 수 있다. (앞 공백 필수) 
  • leave는 반복이 끝난 뒤 progress bar를 남겨둘지 결정하는 파라미터로 True면 남겨두고, False면 지운다. (default: True)

ascii = " *"

 

3) tqdm은 다중으로 사용이 가능하며, 이때 position, leave 옵션을 쓰면 편리하다.

  • position은 0부터 시작하며, 여러 개의 progress bar를 관리할 때 유용하다. 지정하지 않으면 자동으로 설정된다.
  • 바깥쪽 반복문을 outer, 안쪽 반복문을 inner라고 설정하고 inner에 대해서만 leave=False 옵션을 주면, 반복 중에는 progress bar가 보이지만 반복이 완료되면 inner progress bar가 사라진다.

leave = False (반복 중에는 표기됨)
leave = False (반복이 끝난 후에는 사라짐)

 

4. tqdm 동적으로 사용하기

  • 딥러닝 모델을 학습시킬 때 상황을 동적으로 확인하기 위해 사용된다.
  • tqdm 객체를 선언하고 반복문을 실행하면 동적으로 progress bar에 변화를 줄 수 있다.
  • 다만 사용 후 close()를 해주어야 하기 때문에 with문을 사용하는게 편리하다.  
    • set_description은 몇 번째 epoch인지 확인할 수 있도록 표기해 준다.
    • set_postfix는 원하는 변수의 변화를 체크할 때 쓰인다. (dict or **kwargs)

 

 

 

728x90
반응형
댓글