PyTorch - 如何将自定义数据集保存到磁盘以与 torchvision.datasets 一起使用?
PyTorch - How to Save Custom Dataset to disk to use with torchvision.datasets?
我想创建一个 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 数组的最佳方法吗,如此处所示?
对于任何 datasets。
默认情况下这是不可能的
推荐的方法是继承 class 并自己创建功能,或者使用新方法对 class 进行 manky 修补。
我想创建一个 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 数组的最佳方法吗,如此处所示?
对于任何 datasets。
默认情况下这是不可能的推荐的方法是继承 class 并自己创建功能,或者使用新方法对 class 进行 manky 修补。