Тип PyTorch для набора данных длинойPython

Программы на Python
Ответить
Anonymous
 Тип PyTorch для набора данных длиной

Сообщение Anonymous »

Я создаю набор метаданных, который объединяет данные из нескольких входных наборов данных.

Код: Выделить всё

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...
Я получил предупреждение о типе, когда попытался получить доступ к len(self.regular_dataset) из MetaDataset
Это оказывается, что определение типа 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...
Но теперь я получаю ожидаемый тип DatasetWithLength, вместо этого получаю предупреждение FirstDataset, когда пытаюсь это сделать:

Код: Выделить всё

foo = MetaDataset(
FirstDataset(),
FirstIterableDataset(),
)
Как правильно определить тип набора данных PyTorch, имеющего свойство длины?


Подробнее здесь: https://stackoverflow.com/questions/792 ... ith-length
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»