如何将自定义数据放入 Pytorch DataLoader 中?

New*_*irl 4 neural-network python-3.x conv-neural-network pytorch

我已经对数据进行了预处理和标准化,并分为训练集和测试集。我的 x_train 和 y_train 有以下尺寸: X_Train 的形状:(708, 256, 3) Y_Train 的形状:(708, 4)

如您所见,x_train 是 3-D 的。我怎样才能将它输入到 pytorch 数据加载器中?我应该在班级块中放置什么?

class training_set(Dataset):
    def __init__(self,X,Y):

    def __len__(self):
        return 

    def __getitem__(self, idx):
        return 

training_set = torch.utils.data.TensorDataset(x_train, y_train)
train_loader = torch.utils.data.DataLoader(training_set, batch_size=50, shuffle=True)
Run Code Online (Sandbox Code Playgroud)

Dis*_*ani 6

x_train, y_train = torch.rand((708, 256, 3)), torch.rand((708, 4))  # data

class training_set(data.Dataset):
    def __init__(self,X,Y):
        self.X = X                           # set data
        self.Y = Y                           # set lables

    def __len__(self):
        return len(self.X)                   # return length

    def __getitem__(self, idx):
        return [self.X[idx], self.Y[idx]]    # return list of batch data [data, labels]
Run Code Online (Sandbox Code Playgroud)
training_dataset = training_set(x_train, y_train)
train_loader = torch.utils.data.DataLoader(training_dataset, batch_size=50, shuffle=True)
Run Code Online (Sandbox Code Playgroud)

实际上,您不需要使用自定义数据集,因为在您的情况下它是简单的数据集。你可以先更改为TensorDataset这样你就可以这样做

training_dataset = torch.utils.data.TensorDataset(x_train, y_train)
train_loader = torch.utils.data.DataLoader(training_dataset, batch_size=50, shuffle=True)
Run Code Online (Sandbox Code Playgroud)

两者都会返回相同的结果。