pytorch 4

no_grad vs. requires_grad

torch.Tensor.requires_grad True인 경우 해당 텐서에 대하여 gradient를 계산하여 업데이트 False인 경우 파라미터를 상수 취급하여 업데이트하지 않음 torch.no_grad gradient 계산을 하지 않게 함 inferencing할 때 활용 가능 (torch.Tensor.backward를 활용하지 않을 경우 no_grad vs. requires_grad 모델 일부는 freeze하고 일부에 대해서만 parameter update를 하고싶은 경우 활용 (ex. transfer learning, GAN) 1) 모델 A는 freeze, 모델 B만 학습 B에서 A로 가는 gradient를 막음 detach: z를 static tensor로 만들어, update할 때 z 이전 파라..

ML & DL/PyTorch 2023.02.20

Dataset & DataLoader

PyTorch Dataset torch.utils.data.Dataset 모듈을 상속해 새로운 class를 만듦으로써 우리가 원하는 데이터셋 지정 __len__() 데이터셋의 총 데이터 수 __getitem__() 어떠한 인덱스 idx를 받았을 때, 그에 상응하는 입출력 데이터 반환 from torch.utils.data import Dataset class CustomDataset(Dataset): def __init__(self): self.x_data = [[73, 80, 75], [93, 88, 93], [89, 91, 90], [96, 98, 100], [73, 66, 70]] self.y_data = [[152], [185], [180], [196], [142]] def __len__(self..

ML & DL/PyTorch 2023.02.20