728x90
https://tutorials.pytorch.kr/beginner/basics/data_tutorial.html
위 문서를 정리 한 것임.
이론만 적은 글이므로 생략된 코드가 많음.
관련 코드는 위 링크를 살펴 볼 것.
[torch.utils.data.DataLoader와 torch.utils.data.Dataset]
- 미리 준비한 데이터 셋, 가지고 있는 데이터 사용을 가능하게 해줌
- Dataset : 샘플과 정답(label)을 저장
- DataLoader : Dataset을 샘플에 쉽게 접근가능하게 iterable로 감싼다.
[torch.utils.data.Dataset]
- Dataset 클래스는 반드시 3개의 함수로 구현해야 함.
- __init__, __len__, __getitem__
1) __init__ : Dataset 객체가 생성될 때 한번만 실행됨
2) __len__ : 데이터셋의 샘플 개수 반환
3) __getitemm__ : 주어진 idx에 해당하는 샘플을 데이터 셋에서 불러오고 반환함.
from torchvision.io import read_image라이브러리의 read_image를 사용해 이미지를 텐서로 변환함
def __getitem__(self, idx):
img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])
image = read_image(img_path)
label = self.img_labels.iloc[idx, 1]
if self.transform:
image = self.transform(image)
if self.target_transform:
label = self.target_transform(label)
sample = {"image": image, "label": label}
return sample
[torch.utils.data.DataLoader]
- 데이터 셋을 불러온 뒤에 데이터셋을 순회
- batch size의 특징과 정답을 포함하는 train features와 train labels의 묶음을 반환함
- shuffle =True로 지정하면 모든 배치를 순회한 뒤 데이터가 섞임
728x90
'STUDY > 인공지능' 카테고리의 다른 글
까먹지 않기 위한 파이토치 공부 내용 정리2 (0) | 2023.06.11 |
---|---|
까먹지 않기 위한 파이토치 공부 내용 정리 (0) | 2023.06.08 |
torch.unsqueeze , torch.squeeze, torch.cat 설명 (0) | 2023.04.19 |
Diffusion model (1) (0) | 2023.04.18 |
tensor 이미지 저장하는 법 (0) | 2023.04.10 |