【问题标题】:How to fit custom data into Pytorch DataLoader?如何将自定义数据放入 Pytorch DataLoader?
【发布时间】:2020-01-07 23:00:15
【问题描述】:

我已经对我的数据进行了预处理和规范化,并分为训练集和测试集。我的 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)

【问题讨论】:

    标签: python-3.x neural-network pytorch conv-neural-network


    【解决方案1】:
    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]
    
    training_dataset = training_set(x_train, y_train)
    train_loader = torch.utils.data.DataLoader(training_dataset, batch_size=50, shuffle=True)
    

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

    training_dataset = torch.utils.data.TensorDataset(x_train, y_train)
    train_loader = torch.utils.data.DataLoader(training_dataset, batch_size=50, shuffle=True)
    

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

    【讨论】:

    • 谢谢,但如果我使用第二个建议,我会收到以下错误:“TypeError: 'int' object is not callable”
    • @NewGirl 如果您可以分享您的代码,如果您愿意,它将有助于找到原因。因为两者都适合我。
    • 我先使用“torch.from_numpy”将其转换为张量,并且可以正常工作。谢谢!
    猜你喜欢
    • 2021-10-23
    • 2020-07-07
    • 2019-04-27
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2018-12-22
    相关资源
    最近更新 更多