Как использовать формат .re c для обучения реализации M XNet C ++? - PullRequest
0 голосов
/ 14 февраля 2020

C ++ примеры M XNet содержат примеры обучения модели для MNISTIter, набора данных MNIST (.idx3-ubyte или .idx1-ubyte). Однако тот же код фактически рекомендует использовать инструмент im2re c для получения данных, и он создает другой формат .re c. Похоже, формат .rec содержит изображения и метки в одном файле, потому что im2re c принимает подготовленный файл .lst с обоими (номер, метка и имя файла изображения в каждой строке).

I произвел код типа

auto val_iter = MXDataIter("ImageRecordIter");
setDataIter(&val_iter, "Train", vector < string > 
  {"output_train.rec", "output_validate.rec"}, batch_size));

со всеми присутствующими файлами, но это не удалось, поскольку в векторе все еще требуются четыре файла (ошибка сегментации). Но почему, теперь метки не должны находиться внутри файла?

Копая больше в коде, я обнаружил, что setDataIter фактически устанавливает параметры. Параметры для ImageRecordIter можно найти здесь . Я пытался установить параметры, такие как path_imgre c, path.imgre c, затем вызвать .CreateDataIter (), но все это не помогло - ошибка сегментации при первой попытке использовать итератор.

Я был не удалось найти ни одного примера во всей Inte rnet о том, как обучить любую нейронную сеть M xNet в C ++, используя формат файла .re c для обучающих и проверочных наборов. Является ли это возможным? Единственный обходной путь, который я нашел, - это попробовать оригинальные инструменты MNIST, которые создают файлы, описанные в примерах вывода MNIST.

1 Ответ

0 голосов
/ 25 февраля 2020

В конце концов я использовал Mnisten , чтобы создать соответствующий набор данных, чтобы формат ввода теперь был таким же, как в примерах M xNet. Mnisten - хороший инструмент для работы, но важно не забывать, что он нормализует пиксели в оттенках серого в диапазоне 0..1 (не более 0..255).

Это инструмент командной строки, но со всем доступным кодом C ++ (и его не так много) конвертер также может быть интегрирован с существующим кодом проекта для обработки различных особенностей. Я никогда не был связан с этим проектом раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...