[부스트캠프 AI-Tech] Day 7
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
- Data Flow
- 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): # idx 값을 주었을 때 반환되는 데이터의 형태
label = self.labels[idx]
text = self.text[idx]
sample = {"Text": text, "Class": label}
return sample
- DataLoader 클래스
- Data의 Batch를 생성해주는 클래스
- 학습직전(GPU feed전) 데이터의 변환을 책임
- Tensor로 변환 + Batch 처리가 메인 업무
- 병렬적인 데이터 전처리 코드의 고민 필요
Author And Source
이 문제에 관하여([부스트캠프 AI-Tech] Day 7), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kangmin/부스트캠프-AI-Tech-Day-7저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)