AI/3주차
-
4. Parallel & Hyperparameter Tuning & TroubleshootingAI/3주차 2021. 8. 20. 17:48
Model Parallel & Data Parallel 모델 나누기 / 데이터 나누기 모델 병렬화는 병목, 파이프라인의 어려움으로 인해 어렵다 데이터 병렬화는 데이터를 나눠 GPU에 할당하고, 결과를 평균낸다. mimibatch 수식과 유사하지만, 여러 GPU에서 병렬적으로 실행 DataParallel - 데이터를 분배한 후 평균을 취함. GPU 사용 불균형 문제 발생(한곳에서 평균을 내주기 때문에), Batch 사이즈 감소 DistributedDataParallel 각 CPU마다 프로세스를 생성하여 개별 GPU에 할당(개별적으로 평균 계산) PIN memory: DRAM에 데이터를 바로 올림 Hyperparameter Tuning 모델이 학습하지 않는 값을 사람이 지정 (lr, 모델의 크기, optim..
-
3. 시각화에서 텍스트 / Loading & Monitoring with PytorchAI/3주차 2021. 8. 19. 17:20
Title: 가장 큰 주제 Label: 축 Tick Label: 축에 눈금을 사용 Legend: 범례 Annotation: 이 외 시각화에 대한 설명 model.save() 학습의 결과를 저장 모델의 형태와 파라미터를 저장 중간 과정 저장을 통해 최선의 결과모델 선택 결과의 재연성 state_dict: 모델의 파라미터를 ordered dict 형태로 저장 torch.save(model.state_dict(), os.path.join(PATH, "model.pth")) checkpoints 학습의 중간 결과를 저장 epoch, loss, metric을 지속적으로 확인 저장 학습을 중단하였다가 다시 진행하기 위해 필요 Freezing pretrain 된 모델의 파라미터 일부를 고정 다양한 freezing 기..
-
2. Dataset & DataloaderAI/3주차 2021. 8. 19. 11:35
Dataset: getitem에서 map-style을 통해 데이터를 어떻게 반환할지 정해줌 데이터 형태에 따라 함수를 다르게 정의 데이터 생성 시점에 모든 처리를 할 필요는 없다 transforms: 이미지 전처리, augmentation Dataloader: 이를 이용하여 모델에 데이터가 들어감 Data의 batch를 만들어줌 https://subinium.github.io/pytorch-dataloader/ [Pytorch] DataLoader parameter별 용도 pytorch reference 문서를 다 외우면 얼마나 편할까!! subinium.github.io
-
1. PytorchAI/3주차 2021. 8. 17. 17:35
Pytorch vs Tensorflow Pytorch: Define by run (Dynamic Computation Graph) -> debug 시 편함 Tensorflow: Define and run Define and Run은 코드를 직접 돌리는 환경인 세션을 만들고, placeholder를 선언하고 이것으로 계산 그래프를 만들고(Define), 코드를 실행하는 시점에 데이터를 넣어 실행하는(Run) 방식. 이는 계산 그래프를 명확히 보여주면서 실행시점에 데이터만 바꿔줘도 되는 유연함을 장점으로 갖지만, 그 자체로 비직관적이다. 그래서 딥러닝 프레임워크 중 난이도가 가장 높은 편이다. 두 프레임워크 모두 계산 그래프를 정의하고 자동으로 그래디언트를 계산하는 기능이 있다. 하지만 Tensorflow의..