torch.nn.Module
torch.nn.Parameter
required_grad=True 로 지정됨backward
for epoch in range(epochs):
optimizer.zero_grad() # 이전의 gradient값이 지금 학습에 영향을 주지 않도록 초기화
outputs = model(inputs) # 예측값(y_hat)으로 변환
loss = criterion(outputs, labels) # 실제값 간의 차이(loss)
loss.backward() # 구하고자 하는 모든 weight값
optimizer.step() # weight값 업데이트
자료수집 → transforms(전처리, tensor로 변환) → Dataset → DataLoader → Model
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): # index 값을 주었을 때 반환되는 데이터의 형태(X, y)
label = self.labels[idx]
text = self.data[idx]
sample = {"Text": text, "Class": label}
return sample
MyDataLoader = DataLoader(MyDataset, batch_size=2, shuffle=True)
# next에서 batch_size만큼 memory(GPU)에 올라가서 처리
next(iter(MyDataLoader))
참고
pytorch 튜토리얼
https://tutorials.pytorch.kr/beginner/blitz/autograd_tutorial.html
dataloader 옵션
https://pytorch.org/docs/stable/data.html
출처 - 부스트캠프 AI tech 교육자료
[부스트캠프 AI Tech] Week 2 - Day 2