26 lines
No EOL
666 B
Python
26 lines
No EOL
666 B
Python
from abc import abstractmethod, ABC
|
|
from os.path import join, curdir
|
|
from typing import Callable
|
|
|
|
from torch.utils.data import Dataset as TorchDataset
|
|
|
|
"""
|
|
Author: Tibo De Peuter
|
|
"""
|
|
class Dataset(TorchDataset, ABC):
|
|
"""Abstract base class for datasets."""
|
|
@abstractmethod
|
|
def __init__(self, root: str, transform: Callable = None):
|
|
"""
|
|
:param root: Relative path to the dataset root directory
|
|
"""
|
|
self._root: str = join(curdir, 'data', root)
|
|
self.transform = transform
|
|
self.dataset = None
|
|
|
|
@property
|
|
def root(self):
|
|
return self._root
|
|
|
|
def __len__(self):
|
|
return len(self.dataset) |