더북(TheBook)

코드 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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.