2016-02-03 4 views
1

Я пытаюсь разбить данные на тренировку (80%) и тест (20%), но мне нужно перетасовать данные а затем назначить равное количество выборок для каждой метки (y, 10 классов) в каждом наборе данных.Lua/Torch: Разделить набор данных MNIST для обучения и тестирования с одинаковым количеством меток в каждом наборе

Как я могу это сделать в 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] 

ответ

0

Вы могли бы сделать что-то вроде ниже перетасовать;

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()) 

, но я не уверен относительно второй части вашего вопроса.