study
-
[Pytorch] Learning Rate Scheduler 정리
머신러닝을 학습시키기 전 하이퍼파라미터를 설정할 때 epoch이 흘러가면서 적합하게 맞춰가면 안될까? 하는 생각이 있었는데 이미 있는 방법이었고 Pytorch 에서 제공하는 Learnig rate를 학습과정에서 조정하는 Learnig Rate Scheduler 라고 부르는 모듈이 있었다. Learning rate 는 최적의 weight를 찾아나가는 보폭으로 너무 작은 값은 local minimum point에 까지 밖에 도달하지 못해 최적의 weight를 못 찾게 되고, 너무 큰 lr은 noise가 커져 weight를 못 찾게 된다. 그래서 Learning rate scheduler는 최적의 lr을 찾기 위해 최적의 값에 가까워 질수록 lr을 줄여 최적의 lr로 weight를 찾는다. Learning R..
-
[ML/Python] 머신러닝 성능을 높이는 grid search
머신러닝 알고리즘은 같은데 learning rate 와 depth에 따라 학습속도와 성능의 차이는 아주 크게 난다. 토이프로젝트를 진행하거나 스터디를 하면서 하이퍼파라미터 후보를 선정하고 학습을 시작할 때, 적지 않은 시간이 들고 자고 있거나 부재 중 끝나버린 학습을 생각하면서 버리는 시간이 아까워서 (더해서 저사양 노트북과 불안한 vm) 속도와 성능을 잡는 법을 서치하게 되었다. Grid Search 그리드 서치는 한번의 시도로 수백가지의 하이퍼파라미터 값을 시도할 수 있게 한다. 원리는 하이퍼파라미터 후보를 입력하면, 각 조합에 대해 모두 모델링 해보고 최적의 결가 나오는 하이퍼파라미터 조합을 알려준다. max_depth = [3, 5, 10] learning_rate = [0.01, 0.05, 0...
-
[study] YOLO 학습속도 개선
참고 :https://github.com/eriklindernoren/PyTorch-YOLOv3 YOLOv3의 모델의 학습시간을 GPU사용률을 높여 줄이는 법을 알아보자. 1. pin_memory = True dataloader = DataLoader( dataset, batch_size=batch_size, shuffle=True, num_workers=n_cpu, pin_memory=True, ##pinned memory를 사용 collate_fn=dataset.collate_fn, worker_init_fn=worker_seed_set) return dataloader pinned memory는 CPU에서 GPU로 전송하기 위한 staging area를 뜻한다. 위 그림과 같이 pageable me..