My PyTorch model contains two CNNs, the outputs of which are then merged and passed through a series of fully-connected layers. The inputs of the two CNNs are matrices: the problem is that for the first CNN the matrices have shape 128x100, while for the second it’s 128x1000. I’m now trying to create a Dataset
class to generate the loaders. At the moment I wrote the following:
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)
While the code seems to be running without any problem, I’m rather sure there is something wrong since in the __len__
method I return the length of one of the inputs. Is it possible to take care of the different size of the inputs?