Какова структура набора данных факела?

Я начинаю использовать факел 7 и хочу сделать свой набор данных для классификации. Я уже сделал пиксельные изображения и соответствующие метки. Тем не менее, я не знаю, как передать эти данные на факел. Я прочитал некоторые коды от других и обнаружил, что они используют набор данных с расширением '.t7', и я думаю, что это тензорный тип. Это правильно? И мне интересно, как я могу преобразовать свои пиксельные изображения (на самом деле, я сделал их с помощью Matlab, используя набор данных MNIST) в расширение t7, совместимое с факелом. Должна быть структура набора данных в формате t7, но я не могу ее найти (также для меток).

Подводя итог, у меня есть пиксельные изображения и метки, и я хочу преобразовать их в формат t7, совместимый с фонариком.

Заранее спасибо!

 Minkyu Choi07 июн. 2016 г., 05:17
@RPM Вы правы. Это моя ошибка. Это не 7z, а t7. Спасибо!
 RPM06 июн. 2016 г., 16:16
Я не уверен, в каком формате факел принимает данные, но.7z расширение соответствует файлу, сжатому с помощью 7-zip (7-zip.org). Если люди предоставляют вам данные в этом формате, вам нужно будет распаковать их перед использованием. я очень сомневаюсь, что torch принимает файлы .7z.

Ответы на вопрос(1)

Решение Вопроса

ми. Например, следующий код lua:

if (not paths.filep("cifar10torchsmall.zip")) then
    os.execute('wget -c https://s3.amazonaws.com/torch7/data/cifar10torchsmall.zip')
    os.execute('unzip cifar10torchsmall.zip')
end
Readed_t7 = torch.load('cifar10-train.t7')
print(Readed_t7)

Вернется через зуд:

{
  data : ByteTensor - size: 10000x3x32x32
  label : ByteTensor - size: 10000
}

Это означает, что файл содержит таблицу из двух ByteTensor, один с надписью «data», а другой с «label».

Чтобы ответить на ваш вопрос, вы должны сначала прочитать изображения (например, torchx:https://github.com/nicholas-leonard/torchx/blob/master/README.md ) затем положите их в таблицу с вашим тензором метки. Следующий код является всего лишь черновиком, чтобы помочь вам. Он рассматривает случай, когда: есть два класса, все ваши изображения находятся в одной папке и упорядочены по этим классам.

require 'torchx';

--Read all your dataset (the chosen extension is png)
files = paths.indexdir("/Path/to/your/images/", 'png', true)
data1 = {}
for i=1,files:size() do
   local img1 = image.load(files:filename(i),3)
   table.insert(data1, img1)
end

--Create the table of label according to 
label1 = {}
for i=1, #data1 do
    if i <= number_of_images_of_the_first_class then
        label1[i] = 1
    else
        label1[i] = 2
    end
end

--Reshape the tables to Tensors
label = torch.Tensor(label1)
data = torch.Tensor(#data1,3,16,16)
for i=1, #data1 do
    data[i] = data1[i]
end

--Create the table to save
Data_to_Write = { data = data, label = label }

--Save the table in the /tmp
torch.save("/tmp/Saved_Data.t7", Data_to_Write)

Должно быть возможно сделать менее отвратительный код, но этот детализирует все шаги и работает с torch 7 и Jupyter 5.0.0.

Надеюсь, поможет.

С уважением

Ваш ответ на вопрос