python

python profiler 설정

scjung 2020. 2. 5. 18:05

이전에 keras에서 _make_predict_function 이라는 내부 함수로 인해 predict 시간을 측정하는데 오류를 뿜뿜하면서

파트너님이 profile 등을 써서 오류를 줄이도록 하라는 말을 하셨다

 

그래서 profiler를 먼저 찾아봤는데

 

python 상에서 cprofile 이라는 것이 있었다

 

근데 보기도 불편하고 이게 뭔소린가.... 싶으면서 나는 jupyter 상에서 보고 싶어서 좀 더 찾아본 결과

 

line_profiler 라는 것이 있더라

 

python3 -m pip install line_profiler

위 명령어로 line_profiler를 설치하고

 

코드 위쪽에 아래 코드를 선언해준다

%load_ext line_profiler

 

그리고 이제 profile을 하려는 함수를 아래 형태로 써준다

%lprun -f <profile_function> <profile_function()>

 

hardnet으로 테스트한 코드를 보자면

%lprun -f torch_util.validate torch_util.validate(hard_net, valid_loader, loss_fn, iou.iou_pytorch, device)

이런 식이 된다

 

결과는

 

 

같이 나오는데 gpu를 학습하는데 쓰고 있어서 중간에 끊었는데 위와 같이 시간이 이상하게 찍혔다

 

암튼 jupyter에서 위와 같이 한 눈에 볼 수 있어서 많이 편해졌지만 얼마 안썼지.... (파트너님 죄송)