[](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-1)class CustomImageDataset(Dataset): [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-2) def __init__(self, annotations_file, img_dir, transform=None, target_transform=None): [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-3) self.img_labels = pd.read_csv(annotations_file) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-4) self.img_dir = img_dir [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-5) self.transform = transform [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-6) self.target_transform = target_transform # <- separate target transform [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-7) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-8) def __len__(self): [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-9) return len(self.img_labels) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-10) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-11) def __getitem__(self, idx): [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-12) img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0]) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-13) image = read_image(img_path) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-14) label = self.img_labels.iloc[idx, 1] [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-15) if self.transform: [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-16) image = self.transform(image) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-17) if self.target_transform: # <- separate target transform [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-18) label = self.target_transform(label) [](https://www.fast.ai/posts/2025-02-20-fasttransform.html#cb11-19) return image, label