Lua/Torch:将 MNIST 数据集拆分为训练和测试,每组中的标签数量相等
Lua/Torch: Split MNIST dataset into training and test with equal number of labels in each set
我试图将数据分成训练(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())
但是我不确定你问题的第二部分。
我试图将数据分成训练(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())
但是我不确定你问题的第二部分。