Python

tqdm을 enumerate/zip과 함께 사용하기

체봄 2022. 5. 5. 21:03

tqdm으로 프로그레스 바를 정상적으로 나타내려면, tqdm으로 감싸는 값이 __len__()을 가져야한다.

 

tqdm(enumerate(리스트)) # wrong
tqdm(zip(리스트1, 리스트2)) # wrong
tqdm(enumerate(zip(리스트1, 리스트2))) # wrong

enumerate()와 zip()는 __len__()을 갖지 않기 때문에, 위 케이스들처럼 사용하면 프로그레스 바가 정상적으로 나타나지 않는다.

 

enumerate(tqdm(리스트))
zip(tqdm(리스트1), 리스트2)
enumerate(zip(tqdm(리스트1), 리스트2))

위와 같이 길이 값을 얻을 수 있는 리스트에 직접 씌워서 사용해야 한다.

zip을 사용하는 경우에는 리스트1과 리스트2의 길이가 같으므로 리스트1에 tqdm()을 씌워도 되고 리스트2에 tqdm()을 씌워도 된다.

 

 

참고: https://otzslayer.github.io/pytorch/2022/03/20/show-progress-bar-for-pytorch-dataloader.html

 

반응형