Deep learning 如何将数据集从pickle文件加载到PyTorch中?

Deep learning 如何将数据集从pickle文件加载到PyTorch中?,deep-learning,pytorch,pickle,torch,torchvision,Deep Learning,Pytorch,Pickle,Torch,Torchvision,我将X_列(输入)和Y_列(标签)以整数矩阵的形式放在单独的pickle文件中。现在,我需要加载它们并使用PyTorch进行训练。我尝试了torch.utils.data.DataLoader和torchvision.datasets.DatasetFolder,但没有任何效果,或者我可能在某个地方出错。请为同样的问题建议一个合适的方法。你应该用一些例子清楚地描述你的问题。无论如何,据我所知,你正在寻找这样的东西 import pickle from torch.utils.data impor

我将X_列(输入)和Y_列(标签)以整数矩阵的形式放在单独的pickle文件中。现在,我需要加载它们并使用PyTorch进行训练。我尝试了
torch.utils.data.DataLoader
torchvision.datasets.DatasetFolder
,但没有任何效果,或者我可能在某个地方出错。请为同样的问题建议一个合适的方法。

你应该用一些例子清楚地描述你的问题。无论如何,据我所知,你正在寻找这样的东西

import pickle
from torch.utils.data import Dataset
from torchvision import transforms
from torch.utils.data import DataLoader


class YourDataset(Dataset):

    def __init__(self, X_Train, Y_Train, transform=None):
        self.X_Train = X_Train
        self.Y_Train = Y_Train
        self.transform = transform

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

    def __getitem__(self, idx):
        if torch.is_tensor(idx):
            idx = idx.tolist()

        x = self.X_Train[idx]
        y = self.Y_Train[idx]

        if self.transform:
            x = self.transform(x)
            y = self.transform(y)

        return x, y


file = open('FILENAME_X_train', 'rb')
X_train = pickle.load(file)
file.close()

file = open('FILENAME_Y_train', 'rb')
Y_train = pickle.load(file)
file.close()

your_dataset = YourDataset(X_train, Y_train, transform=transforms.Compose([transforms.ToTensor()]))

your_data_loader = DataLoader(your_dataset, batch_size=8, shuffle=True, num_workers=0)
请注意,我没有测试代码,但我认为它给出了总体思路。希望能有帮助