Код: Выделить всё
from torch.utils.data import Dataset, IterableDataset
class MetaDataset(Dataset):
def __init__(self, regular_dataset: Dataset, iterable_dataset: IterableDataset):
self.regular_dataset = regular_dataset
self.iterable_dataset = iterable_dataset
pass # Do other stuff...
Это оказывается, что определение типа PyTorch для Dataset намеренно не включает __len__. Поэтому мне придется создать свой собственный тип:
Код: Выделить всё
from torch.utils.data import Dataset, IterableDataset
class DatasetWithLength(Dataset):
def __len__(self) -> int:
pass
class MetaDataset(Dataset):
def __init__(self, regular_dataset: DatasetWithLength, iterable_dataset: IterableDataset):
self.regular_dataset = regular_dataset
self.iterable_dataset = iterable_dataset
pass # Do other stuff...
Код: Выделить всё
foo = MetaDataset(
FirstDataset(),
FirstIterableDataset(),
)
Подробнее здесь: https://stackoverflow.com/questions/792 ... ith-length
Мобильная версия