본문 바로가기

Machine Learning/Dev Env

2. Pytorch에서의 추가적인 기능 - Data Loader, torch vision, visdom

반응형

  1. Data Loader
  2. pre-trained data (torch vision)
  3. Visdom



  1. Data Loader


DataLoader는 dataset을 wrapping함으로써, 여러 추상화된 기능을 제공한다.
mini-batch, shuffling, multi threading등과 같은 데이터 관련한 작업을 지원한다.

custom data 를 필요로 할때엔 Dataset 클래스를 정의해서 사용하면 된다. 해당 클래스에선 어떤 source든지, 원하는 특정 type의 데이터로 읽는 방법을 정의해야한다. 
이후에 이를 DataLoader로 warpping 하고 학습시키면 된다. 

 DataLoader object를 순회하는 식으로 for 문을 설계하면, 매 iteration마다 mini-batch를 하게 되는 효과를 얻을 수 있다.
또한, data loader 내부적으로 데이터를 shuffling하고 멀티스레딩을 통해 데이터 로딩작업을 수행한다. 

결국 실질적으로 사용되는 PyTorch 코드는 이전 글과 더불어 DataLoader를 통핸 data handling을 포함한 코드로 위와 같이 구성된다.



  1. Pre-trained model torch vision

https://github.com/pytorch/vision
매우 간단하다. model에 pretrained flag를 true로 지정해주면 pretrained weight으로 초기화된 model을 얻을 수 있다.




  1. Visdom

TensorFlow의 tensor board와 마찬가지로 시각화하여 디버깅에 용이한 도구이다.
하지만 tesor borad와 달리 아직은 computational graph 구조를 보여주는 기능이 없다.


* 간단한 튜토리얼은 최건호님의 깃허브 참조 : https://github.com/GunhoChoi/PyTorch-FastCampus/blob/master/02_Regression%26NN/Visdom_Tutorial.ipynb



* 참고 (CS231N 2017 spring) : https://www.youtube.com/watch?v=6SlgtELqOWc#t=59m11s


반응형