본문 바로가기

부스트캠프 AI Tech/[Week3] Pytorch

(3)
[Week3] PyTorch 활용하기 [Day4] *Multi-GPU 활용 오늘날의 딥러닝은 엄청난 데이터와의 싸움... *Model parallel 다중 GPU에서 학습을 분산하는 두 가지 방법(모델 나누기 / 데이터를 나누기) 모델을 나누는 것은 생각보다 예전부터 썻음 (alexnet) 모델의 병목, 파이프라인의 어려움 등으로 인해 모델 병렬화는 고난이도 과제 위 코드보다는 병렬적으로 파이프라인을 구축하는것이 좋다 *Data parallel 데이터를 나눠 GPU에 할당후 결과의 평균을 취하는 방법 minibatch 수식과 유사한데 한번에 여러 GPU에서 수행 PyTorch에서는 두가지 방식을 제공(DataParallel , DistributedDataParallel) DataParallel - 단순히 데이터를 분배한후 평균을 취함 -> GPU 사용 ..
[Week3] PyTorch 구조 학습 [Day2 ~ Day3] *AutoGrad & Optimizer *torch.nn.Module 딥러닝을 구성하는 Layer의 base class Input, Output, Forward, Backward 정의 학습의 대상이 되는 parameter(tensor) 정의 *nn.Parameter Tensor 객체의 상속 객체 nn.Module 내에 attribute가 될 때는 required_grad=True로 지정되어 학습 대상이 되는 Tensor 우리가 직접 지정할 일은 잘 없음 - 대부분의 layer에는 weights 값들이 지정되어 있음 *Backward Layer에 있는 Parameter들의 미분을 수행 Forward의 결과값 (model의 output=예측치)과 실제값간의 차이(loss)에 대해 미분을 수행 해당 값으로 P..
[Week3] PyTorch Basics [Day1] *PyTorch의 특징 (tensorflow와 다른점) Computational Graph 연산의 과정을 그래프로 표현 Define and Run : 그래프를 먼저 정의 -> 실행시점에 데이터 feed Define by Run (Dynamic Computational Graph) : 실행을 하면서 그래프를 생성하는 방식 *Why PyTorch Define by Run의 장점 : 즉시 확인 가능 -> pythonic code GPU support, Good API and community 사용하기 편한 장점이 가장 큼 TF는 production과 scalability의 장점 Numpy + AutoGrad + Function Numpy 구조를 가지는 Tensor 객체로 array 표현 자동미분을 지원하여 D..