아주 복잡한 딥러닝 코드를 보다보면.. 디버깅 해야할 때가 한둘이 아니다!
특히 모델 특정 부분의 레이어의 차원이나, 무엇이 input으로 들어가는지 정확하게 파악하기 위해서는 디버깅이 필수적이다. 과거의 나는.. 이를 위해 주피터로 모든 config 파일과 dataloader부터 차례로 써내려가며 똑같은 환경을 만들어주기 위해 노력했으나... 이는 너무 불편할 수 있다. 따라서 이럴 때 python 전용 디버거 pdb를 사용하면 아주 간편하다!
사용법을 간단히 알아보자!
# pdb 사용법
사실 구글링을 해보면 약 두가지의 사용법이 나오지만, 딥러닝 모델을 디버깅할 때는 특정 부분의 변수가 필요한 경우가 많으므로 하나의 유용한 방법만 공유하겠다. 내가 모델 내에서 디버깅하고 싶은 부분 아래에 다음과 같이 입력하면 된다.
"""
내가 디버깅하고 싶은 부분이 들어있는 코드
"""
import pdb
pdb.set_trace()
그러면 import pdb
위에까지 코드가 실행되고, 터미널에서 멈춘다. 그러면 이제 해당 부분에서 변수가 무엇인지, 어떤 값이 들어오는지를 해당 시점에서 알 수 있는 것 ! ⭐️⭐️⭐️⭐️****
예를 들면 사용법은 다음과 같다.
def sum(x, y):
z = x + y
return z
a = 100
b = 250
c = sum(a, b)
# 이곳에서 함수를 멈추고 디버깅을 하고 싶을 때
import pdb
pdb.set_trace()
print(c)
# pdb 명령어 모음
터미널에서 사용할 수 있는 pdb 명령어는 다음과 같다. 유용하게 사용해보자 !
# Reference
http://pythonstudy.xyz/python/article/505-Python-%EB%94%94%EB%B2%84%EA%B9%85-PDB
반응형
'Python' 카테고리의 다른 글
[Python] Python Class에 대한 기초 정리하기 (0) | 2023.06.11 |
---|---|
[Python] 디렉토리 내 특정 파일 삭제하기 (0) | 2022.10.11 |
[Python] Segmentation label 시각화하기 - 픽셀 값이 너무 작을 때 (1) | 2022.09.05 |
[Python] shutil과 os로 디렉토리, 폴더 조작하기 (0) | 2022.08.05 |