728x90
반응형

iteration 20 마다 결과 값(time, loss 등)을 확인하며 모델을 학습하고 있는데, iter=20 당 속도가 2배나 느려진 것을 발견하였다. 단순히 데이터 세트가 더 많이 추가되어 그런줄 알고있었는데, 아무리 생각해도 이상해서 이전에 데이터를 이 정도 양으로 많게끔 학습했던 적이 있었을 때의 로그를 확인해보니 시간 차이가 다소 있었다. 그래서 이상해서 찾아보던중.. 불현듯 며칠전 실험 시 바꿨었던 num_workers 가 생각났다....아... num_workers 디폴트 값인 0으로 두고 학습을 진행시켰었는데, 이것 때문에 데이터 로드 시 속도 저하(이전 보다)가 있었던 것 같다. 그래서 바로 num_workers 값을 GPU * 4 로 설정해주니 이전과 같이 빠르게 학습이 진행되는 것을 확인할 수 있었다... 

 

참고로 num_workers 값은 보통 GPU 대수 * 4로 설정하게 되는데, 모델에 가장 적합한 num_workers 수치를 찾아내는 것도 파라미터 튜닝의 일종이라고 한다. 이 튜닝을 위해 고려해야 하는 것은 학습 환경의 GPU개수, CPU개수, I/O 속도, 메모리가 있다고 한다. 

 

또한 메모리의 데이터를 GPU로 옮길 때의 과정을 단축해 주는 역할인 pin_memory도 설정해주면 학습 속도 측면에서 좋다. 

 

 

 

참고자료 1 : https://velog.io/@jaylnne/Pytorch-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%EA%B7%B9%EB%8C%80%ED%99%94%ED%95%98%EB%8A%94-7%EA%B0%80%EC%A7%80-%ED%8C%81

 

Pytorch 머신러닝 모델의 성능을 극대화하는 7가지 팁!

Hi! I'm Jaylnne. ✋페이스북에서 공개한 파이토치 모델을 돌려보던 중, GPU 환경은 건드리지 않고 모델 성능을 향상시킬 수 있는 방법이 없을까? 하는 궁금증이 들었다. 그런 방법이 없을 리 없다고

velog.io

 

참고자료 2 : https://jybaek.tistory.com/799

 

DataLoader num_workers에 대한 고찰

Pytorch에서 학습 데이터를 읽어오는 용도로 사용되는 DataLoader는 torch 라이브러리를 import만 하면 쉽게 사용할 수 있어서 흔히 공식처럼 잘 쓰고 있습니다. 다음과 같이 같이 사용할 수 있겠네요. fr

jybaek.tistory.com

 

728x90
반응형