안녕하세요. 데이터 작업을 할때 유용한 라이브러리인 tqdm 과 tqdm.notebook에 대해 설명드리겠습니다.
tqdm은 terminal 또는 notebook 자동으로 진행상태를 시각적으로 보여주는 라이브러리 입니다.
(tqdm은 Python에서 Progress Meter 또는 Progress Bar를 만드는 데 사용되는 라이브러리입니다.)
tqdm은 데이터 전처리를 할 때 상태확인을 위해 자주 사용 합니다. 추가적으로 딥러닝 학습을 할 때도 사용됩니다.
설명드릴 것은 tqdm과 tqdm.notebook 입니다.
추가적으로 tqdm.auto라는 라이브러리도 있는데 이는 사용환경에 따라 자동으로 tqdm 또는 tqdm.notebook을 선택해 줍니다.
커널이 아직 작동 중인지 알 수 있다.
ProgressBar는 시각적으로 매력적이다.
코드 실행 시간과 코드 완료 예상 시간이 제공되어 대규모 데이터셋에서 작업하는 데 도움이 된다.
특히나 대규모 데이터 전처리를 진행할때 유용한 라이브러리 인데요. 진행률과 시간을 볼 수 있다는 장점이 있습니다.
근데 tqdm과 tqdm notebook은 두개의 차이점이 뭐지라고 생각하시는 분들이 있는데, 제가 사용하면서 느끼는 차이는 tqdm은 아날로그 같고, tqdm.notebook은 디지털 같다는 느낌입니다. 기능적으로는 같습니다.
저는 대규모 데이터 전처리 할때 많이 사용하는데요, 특히나 형태소분석할때 시간도 오래 걸리고 얼마나 시간이 남았는지 또는 얼마나 진행되고 있는지 보기 위해 자주 사용합니다.
바로 본론으로 넘어가서 시각적으로 어떻게 다른지 그림으로 보여드리겠습니다.
둘다 진행률과 시간을 보여주는데 제 느낌에는 tqdm_notebook이 깔끔하게 느껴 집니다.
그러면 바로 어떻게 사용하는지 보여드리겠습니다.
1. tqdm
# 라이브러리를 먼저 불러와 줍니다.
from tqdm import tqdm
import time
for i in tqdm(data):
time.sleep(0.5)
구글코랩으로 쓰신다면 따로 pip설치 없이 사용가능합니다.
아나콘다에서 사용하시려면 따로 설치를 해야합니다.
pip install tqdm or conda install tqdm
pip install time or conda install time
2. tqdm.notebook
# 라이브러리를 먼저 불러와 줍니다.
from tqdm.notebook import tqdm
import time
for i in tqdm(data):
time.sleep(0.5)
구글코랩으로 쓰신다면 따로 pip설치 없이 사용가능합니다.
아나콘다에서 사용하시려면 따로 설치를 해야합니다.
pip install tqdm or conda install tqdm
pip install time or conda install time
너무 쉽지 않나요? 앞으로 tqdm으로 전처리 시간을 편하게 보시며 작업하실때 도움이 되시길 바랍니다.
딥러닝 학습시킬때도 좀 더 시각적으로 깔끔하게 볼 수 있습니다.
개인적으로 사용하니 너무 좋았습니다. 많은 분들도 학습시킬 때 tqdm을 사용해 보세요 !!
- tqdm.notebook 적용 전
- tqdm.notebook 적용 후
- 전체적인 학습률까지 볼 수 있어서 좋습니다.
- 심지어 모델평가 하실때도 보실 수 있습니다.
Progressbar를 보고 싶으시면 아래와 같은 방법을 사용해주세요.
# pip 설치, 꼭 설치해주세요!! 코랩포함
pip install -U tensorflow-addons
import tensorflow_addons as tfa
tqdm_callback = tfa.callbacks.TQDMProgressBar()
model.fit(x_train, y_train,
batch_size=64,
epochs=10,
verbose=0,
callbacks=[tqdm_callback],
validation_data=(x_test, y_test))
# 모델 평가하실 때도 사용 가능합니다.
model.evaluate(x_test, y_test,
batch_size=64,
callbacks=[tqdm_callback],
verbose=0)
좀 더 디테일하게 tqdm에 대해 알아보고 싶거나 궁금하신 분들은 아래의 github 링크를 눌러주세요.