Создать класс набора данных в PyTorch: входные данные различной длины - PullRequest
0 голосов
/ 21 мая 2019

Моя модель PyTorch содержит два CNN, выходы которых затем объединяются и проходят через ряд полностью связанных слоев.Входами двух CNN являются матрицы: проблема в том, что для первого CNN матрицы имеют форму 128x100, а для второго - 128x1000.Сейчас я пытаюсь создать класс Dataset для генерации загрузчиков.На данный момент я написал следующее:

class Data(Dataset):

    def __init__(self, dataP, targetP, dataC, targetC, transform=None):
        self.dataP = [torch.from_numpy(X).int() for X in dataP]
        self.targetP = [torch.from_numpy(y).float() for y in targetP]

        self.dataC = [torch.from_numpy(X).int() for X in dataC]
        self.targetC = [torch.from_numpy(y).float() for y in targetC]

        self.transform = transform

    def __getitem__(self, index):
        Xp = self.dataP[index]
        yp = self.targetP[index]

        Xc = self.dataC[index]
        yc = self.targetC[index]

        if self.transform:
            Xp = self.transform(Xp)
            Xc = self.transform(Xc)

        return Xp, yp, Xc, yc

    def __len__(self):
        return len(self.dataP)

Хотя кажется, что код работает без проблем, я уверен, что что-то не так, поскольку в методе __len__ я возвращаю длину одноговходов.Можно ли позаботиться о разном размере входов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...