mirror of
https://github.com/open-mmlab/mmselfsup.git
synced 2025-06-03 14:59:38 +08:00
33 lines
798 B
Python
33 lines
798 B
Python
|
from abc import ABCMeta, abstractmethod
|
||
|
|
||
|
import torch
|
||
|
from torch.utils.data import Dataset
|
||
|
|
||
|
from openselfsup.utils import print_log, build_from_cfg
|
||
|
|
||
|
from torchvision.transforms import Compose
|
||
|
|
||
|
from .registry import DATASETS, PIPELINES
|
||
|
from .builder import build_datasource
|
||
|
|
||
|
|
||
|
class BaseDataset(Dataset, metaclass=ABCMeta):
|
||
|
"""Base Dataset
|
||
|
"""
|
||
|
|
||
|
def __init__(self, data_source, pipeline):
|
||
|
self.data_source = build_datasource(data_source)
|
||
|
pipeline = [build_from_cfg(p, PIPELINES) for p in pipeline]
|
||
|
self.pipeline = Compose(pipeline)
|
||
|
|
||
|
def __len__(self):
|
||
|
return self.data_source.get_length()
|
||
|
|
||
|
@abstractmethod
|
||
|
def __getitem__(self, idx):
|
||
|
pass
|
||
|
|
||
|
@abstractmethod
|
||
|
def evaluate(self, scores, keyword, logger=None, **kwargs):
|
||
|
pass
|