Lua/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.labels:nDimension()
1

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

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

person Chiefscreation    schedule 03.02.2016    source источник


Ответы (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())

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

person mattdns    schedule 08.02.2016