๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
KAIST MASTER๐Ÿ“š/python

tqdm ์ด๋ž€ - ํŒŒ์ด์ฌ ์ƒํƒœ ๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

by ๋ง๋ž‘e 2021. 1. 22.

tqdm ์ด๋ž€

dataloader์„ ํ†ตํ•ด data๋ฅผ downloadํ•  ๋•Œ, ์ƒํƒœ๋ฐ”๋ฅผ ๋„ฃ์–ด๋‘๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

from tqdm import tqdm

tqdm์ด๋ž€, ์ƒํƒœ ์ง„ํ–‰(progress) ์„ ๋ณด์—ฌ์ฃผ๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋‹ค

 

์ฝ”๋“œ ์˜ˆ์‹œ

1. tqdm(iterable)

tqdm(iterable) ์„ ํ•ด์ฃผ๋ฉด, iterable ๋‚ด์—์„œ์˜ ์ƒํƒœ ์ง„ํ–‰๋ฅ ์„ ์•Œ๋ ค์ค€๋‹ค.

from tqdm.notebook import tqdm

for i in tqdm(range(100)):
     i+=i

 

2. total = tqdm(iterable)

from tqdm.notebook import tqdm
import time

total = tqdm(range(100))
for i in total:
    time.sleep(0.1)

3. trange(i)

trange(i) ๋Š” tqdm(range(i)) ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

from tqdm.notebook import tnrange
import time

#trange(i) is a special optimised instance of tqdm(range(i)):
for i in tnrange(5, desc = "first"):
    for j in tnrange(100, desc="second"):
        time.sleep(0.1)

4. set_description

set_description ์„ ํ†ตํ•ด์„œ iteration์˜ ์–ด๋Š ๋ถ€๋ถ„์ด ์ง„ํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

from tqdm.notebook import tqdm
import time

total = tqdm(["a", "b", "c", "d"], desc = "abcd")
for char in total:
    time.sleep(10)
    total.set_description("Processing %s" % char)

๋งจ ์ฒ˜์Œ, desc ๋ถ€๋ถ„์˜ ๋‚ด์šฉ๊ณผ ํ•จ๊ป˜ 0%์˜ ์ง„ํ–‰๋ฅ ์„ ๋ณด์ธ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค 10์ดˆ ํ›„, (time.sleep(10)) Processing a๋กœ ๋ฐ”๋€Œ๋ฉฐ a ๋ถ€๋ถ„์ด ์ง„ํ–‰๋จ์„ ์•Œ๋ ค์คŒ๊ณผ ๋™์‹œ์— 25%์˜ ์ง„ํ–‰๋ฅ ์„ ๋ณด์—ฌ์ค€๋‹ค.

๋ชจ๋“  ์ง„ํ–‰์ด ๋๋‚˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ ๋œ๋‹ค.

tqdm ๊นƒํ—ˆ๋ธŒ(github)

๋‹ค์Œ์˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ธ€์„ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ, ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

github.com/tqdm/tqdm

 

tqdm/tqdm

A Fast, Extensible Progress Bar for Python and CLI - tqdm/tqdm

github.com

 

๋Œ“๊ธ€