PyTorch-如何将自定义数据集保存到磁盘以与torchvision.datasets一起使用?

时间:2019-11-14 20:56:30

标签: dataset pytorch torchvision

我想创建一个ZCA白色CIFAR-10的自定义PyTorch数据集,随后可以使用Torchvision的函数torchvision.datasets.CIFAR10()进行加载。到目前为止,我可以成功地变白数据(请参见下面的代码),但是我不知道如何以允许使用torchvision.datasets.CIFAR10()加载数据的方式将数据保存到磁盘。我该怎么做?

将代码编码为ZCA白CIFAR 10:

    trainset = torchvision.datasets.CIFAR10(
        root='./datasets',
        train=True,
        download=False)
    train_data = trainset.data.reshape(-1, 32*32*3)
    zca_matrix = zca_whitening_matrix(train_data.T)
    whitened_training_data = np.matmul(zca_matrix, train_data.T).T
    whitened_training_data = whitened_training_data.reshape((-1, 32, 32, 3))

    # whiten CIFAR-10 testing data
    testset = torchvision.datasets.CIFAR10(
        root='./datasets',
        train=False,
        download=False)
    testdata = testset.data.reshape(-1, 32*32*3)
    whitened_test_data = np.matmul(zca_matrix, testdata.T).T
    whitened_test_data = whitened_test_data.reshape((-1, 32, 32, 3))

真的是保存numpy数组的最佳方法,如下所示?

PyTorch: How to use DataLoaders for custom Datasets

1 个答案:

答案 0 :(得分:0)

默认情况下,对于任何datasets,这都是不可能的。

推荐的方法是自己创建子类并创建功能,或者使用新方法对类进行修补。