torch.nn.Module
1)딥러닝을 구성하는 Layer의 base class
2)Input, Output, Forward, Backward 정의
3)학습의 대상이 되는 parameter(tensor) 정의
nn.Parameter
1)Tensor 객체의 상속 객체
2)nn.Module 내에 attribute가 될 때는 required_grad = True로 지정되어 학습 대상이 되는 Tensor
3)대부분의 layer에는 weights 값들이 지정되어 있으므로 직접 지정할 일은 거의 없음
Backward
1)Layer에 있는 Parameter들의 미분을 수행
2)Forward의 결과값 (model의 output=예측치)과 실제값간의 차이(loss) 에 대해 미분을 수행
3)해당 값으로 Parameter 업데이트
Backward from the Scratch
1)실제 backward는 Module 단계에서 직접 지정가능
2)Module에서 backward 와 optimize 오버라이딩
3)사용자가 직접 미분 수식을 써야하는 부담
모델에 data 넣는 과정
Dataset 클래스
1)데이터 입력 형태를 정의하는 클래스
2)데이터를 입력하는 방식의 표준화
3)Image, Text, Audio 등에 따른 다른 입력정의
DataLoader 클래스
1)Data의 Batch를 생성해주는 클래스
2)학습직전(GPU feed전) 데이터의 변환을 책임
3)Tensor로 변환 + Batch 처리가 메인 업무
4)병렬적인 데이터 전처리 코드의 고민 필요
진행 중
파이토치에 익숙치 않다보니 이번 과제는 특히 힘든 것 같다. 그리고 과제 구성이 워낙 잘 되있어서 끝나고 제출한 뒤에도 자주 참조해 볼 필요가 있을 것 같다.