✏️학습 정리
4. 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에는 weight 값들이 지정되어 있음)
-
Backward
- Layer에 있는 Parameter들의 미분을 수행
- Forward의 결과값(model의 ouput = 예측치)과 실제값 간의 차이(loss)에 대해 미분을 수행
- 해당 값으로 paremeter 업데이트
- 실제 backward는 module 단계에서 직접 지정가능
5. Pytorch datasets & dataloaders

- Dataset 클래스
- 데이터 입력 형태를 정의하는 클래스
- 데이터를 입력하는 방식의 표준화
- Image, Text, Audio 등에 따른 다른 입력정의
- 모든 것을 데이터 생성 시점에 처리할 필요는 없음 (image, Tensor 변화는 학습에 필요한 시점에 변환)
- 최근에는 HuggingFace등 표준화된 라이브러리 사용
import torch
from torch.utils.data import Dataset
class CustomDataset(Dataset):
def __init__(self, text, labels):
self.labels = labels
self.data = text
def __len__(self):
return len(self.labels)
def __getitem__(self, idx):
label = self.labels[idx]
text = self.text[idx]
sample = {"Text": text, "Class": label}
return sample
- DataLoader 클래스
- Data의 Batch를 생성해주는 클래스
- 학습직전(GPU feed전) 데이터의 변환을 책임
- Tensor로 변환 + Batch 처리가 메인 업무
- 병렬적인 데이터 전처리 코드의 고민 필요