신군의 역학사전

[Python] tqdm & trange 활용법 본문

Python/Basic Grammar

[Python] tqdm & trange 활용법

긔눈 2024. 11. 4. 12:00
반응형

Tqdm

tqdm은 파이썬에서 사용되는 진행 표시 막대를 생성하기 위한 라이브러리이다. 반복문이나 모델 학습 시, Iteration & Epoch 별 진행 상황을 바 형태로 시각적으로 보여주는데, 특히 진행율과 실행시간을 알 수 있어 편리하다.

 

모듈 설치

pip install tqdm
conda install tqdm

 

설치야 다른 모듈과 마찬가지로, 환경에 따라 pip 혹은 conda install 을 활용하여 설치해준다.

 

모듈 Import

from tqdm import tqdm

 

tqdm 모듈을 임포트해오는 코드는 위와 같다. 신기하게도 아래의 코드처럼 import tqdm 을 활용하면 오류가 나는데, 이는 tqdm이 패키지 이름이기도 하고, 모듈 내의 메인 클래스의 이름이기도 하여 충돌이 일어나는 듯 하다.

 

import tqdm  # 오류 코드
import tqdm

for i in tqdm(range(10)):
    print(i)

 

이런 식으로 오류가 나는 듯 하니, 임포트는 from tqdm import tqdm을 활용하면 된다.

 

from tqdm import tqdm

for i in tqdm(range(10)):
    print(i)

 

다시 제대로 임포트를 해주고 실행해보면 아래와 같이 진행 창이 함께 뜨는 걸 확인할 수 있다. 좀 더 무거운 반복문이나 학습을 돌리면 전체 진행 시간과 iteration 별 진행 시간 등의 정보가 뜬다. 사용법은 반복문을 tqdm으로 감싸주기만 하면 끝이다.

 

Tqdm.notebook & Tqdm.auto

또한 아래의 다른 옵션들을 활용할 수 있다.

from tqdm.notebook import tqdm  # 주피터 노트북에서의 사용에 특화된 버전

from tqdm.auto import tqdm # 사용환경에 따라 적절한 tqdm 버전을 자동으로 선택

 

기능 상에 큰 차이가 있는 것은 아니고, 사용하는 가상환경이나 에디터 등에 따라 최적화된 진행창 디자인을 제공해주는 옵션이다. 주로 나는 vscode상에서 주피터환경에서 코드 작업을 해서, 처음에는 tqdm.notebook을 주로 활용했었는데, 요즘은 그냥 편하게 tqdm.auto를 활용하고 있다. (알아서 최적화된 버전을 선택해준다해서..)

 

Trange

주로 tqdm은 반복 수행하는 작업 시 진행 창을 확인하기 위해 많이 사용한다. 따라서 모든 경우가 그렇지는 않겠지만, 대다수의 경우 반복문에 활용이 된다. 그래서 주로 tqdm(range())식으로 묶어서 활용이 될텐데, 이를 묶어 하나의 함수로 제공을 하고 있다. trange() 함수인데

 

from tqdm.auto import trange

 

이런식으로 임포트를 해온다음, tqdm(range)를 trange로 대체해주기만 하면 된다.

from tqdm.auto import tqdm

for i in trange(10):
    print(i)

 

 

반응형