リッチなプログレスバー、tqdm

機械学習をしていると進捗状況をみつつ作業することが多い(らしい)。

確かに仕事で機械学習を行う際に、終了時間の検討がつかないことには次の作業に移りづらい。上司に報告しづらい。メンタル的につらい。仕事辞めたい。

 

そんなあなたにtqdm

 

for文にかませるだけで、進捗パーセンテージ、経過時間、終了までの残り時間を表示してくれる。

以下、使用例。まずは普通のfor文

import time
for i in range(100)
sleep(0.1)

 

このfor文に、以下のようにtqdmをかませる。

from tqdm import tqdm
import time
for i in tqdm(range(100))
time.sleep(0.1)

そうすると

26%|███████████▏ | 26/100 [00:02<00:07, 9.36it/s]

なんかこんな感じの進捗バーが出る。おしゃみが高い。

 以下は上記例と同義。tqdm(range(xxx)) = trange(xxx)

from tqdm import trange
import time
for i in trange(100)
time.sleep(0.1)

 

なおimport時に import tqdmだけだと以下のエラーが出る。たまにミスるからメモ。

TypeError: 'module' object is not callable

 

2017/09/25 追記: 

そのままでも十分使えるけど、以下の引数を追加してより良いプログレスバーに。

 

desc='xxx':プログレスバーの名前を指定可能。

 leave=True or False:Falseを指定することで、プログレスバーが100%に達したときにバーの表示が削除される。

 勉強次第追加します。。。