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.