코드 6-6 이미지 데이터셋 클래스 정의
class DogvsCatDataset(Dataset):
def __init__(self, file_list, transform=None, phase='train'): ------데이터셋의 전처리(데이터 변형 적용)
self.file_list = file_list
self.transform = transform ------ DogvsCatDataset 클래스를 호출할 때 transform에 대한 매개변수를 받아 옵니다.
self.phase = phase ------ ‘train’ 적용
def __len__(self): ------ images_filepaths 데이터셋의 전체 길이를 반환
return len(self.file_list)
def __getitem__(self, idx): ------ 데이터셋에서 데이터를 가져오는 부분으로 결과는 텐서 형태가 됩니다.
img_path = self.file_list[idx]
img = Image.open(img_path) ------ img_path 위치에서 이미지 데이터들을 가져옵니다.
img_transformed = self.transform(img, self.phase) ------ 이미지에 ‘train’ 전처리를 적용
label = img_path.split('/')[-1].split('.')[0] ------ ①
if label == 'dog':
label = 1
elif label == 'cat':
label = 0
return img_transformed, label