Lua/Torch:将MNIST数据集拆分为训练和测试,每组中有相同数量的标签

Lua/Torch:将MNIST数据集拆分为训练和测试,每组中有相同数量的标签,lua,deep-learning,torch,mnist,Lua,Deep Learning,Torch,Mnist,我试图将数据分为训练集(80%)和测试集(20%),但我需要先洗牌数据,然后为每个数据集中的每个标签(y,10个类)分配相等数量的样本 在lua/torch中,我如何做到这一点?谢谢 这是我到目前为止的代码 loaded = torch.load(data_file, 'ascii') Data = { data = loaded.data, labels = loaded.labels, size = 60000 } Data.data:nDimension() 4 Data.labe

我试图将数据分为训练集(80%)和测试集(20%),但我需要先洗牌数据,然后为每个数据集中的每个标签(y,10个类)分配相等数量的样本

在lua/torch中,我如何做到这一点?谢谢

这是我到目前为止的代码

loaded = torch.load(data_file, 'ascii')
Data = {
data = loaded.data,
labels = loaded.labels,
size = 60000
}



Data.data:nDimension()
4

Data.labels:nDimension()
1

Data.data:size()
 60000
 1
32
32
[torch.LongStorage of size 4]

validationData.labels:size()
 60000
[torch.LongStorage of size 1]

你可以做如下的事情来洗牌

    dataSize = Data.data:size()[1]
    shuffleIdx = torch.randperm(dataSize)
    Data.data = Data.data:index(1,shuffleIdx:long())
    Data.labels = Data.labels:index(1,shuffleIdx:long())

但是我不确定你问题的第二部分。

你可以做如下的事情来洗牌

    dataSize = Data.data:size()[1]
    shuffleIdx = torch.randperm(dataSize)
    Data.data = Data.data:index(1,shuffleIdx:long())
    Data.labels = Data.labels:index(1,shuffleIdx:long())
但我不确定你问题的第二部分