Учебная сеть Matcaffe выдает "Очередь предварительной выборки уровня данных пуста"

Я пытаюсь выяснить, почему моя реализация MatCaffe не может выскочить из моего поезда lmdb, который я создал с помощью convert_imageset.bin.

Что я делаю, так это в основном:

solver = caffe.Solver(solverFile);
solver.step(500);

и, глядя на терминал, вывод после последнего оператора выглядит так:

I0322 11:15:11.830241 **098 net.cpp:228] data does not need backward computation.
I0322 11:15:11.830250 **098 net.cpp:270] This network produces output accuracy
I0322 11:15:11.830257 **098 net.cpp:270] This network produces output loss
I0322 11:15:11.830281 **098 net.cpp:283] Network initialization done.
I0322 11:15:11.830377 **098 solver.cpp:60] Solver scaffolding done.
I0322 11:15:16.625566 **098 solver.cpp:341] Iteration 0, Testing net (#0)
I0322 11:15:19.976579 **098 solver.cpp:409]     Test net output #0: accuracy = 0.445407
I0322 11:15:19.976654 **098 solver.cpp:409]     Test net output #1: loss = 0.693147 (* 1 = 0.693147 loss)
I0322 11:15:20.317916 **098 solver.cpp:237] Iteration 0, loss = 0.693147
I0322 11:15:20.317989 **098 solver.cpp:253]     Train net output #0: loss = 0.693147 (* 1 = 0.693147 loss)
I0322 11:15:20.318009 **098 sgd_solver.cpp:106] Iteration 0, lr = 0.001
I0322 11:15:21.342550 **098 blocking_queue.cpp:50] Data layer prefetch queue empty

Я могу воспроизвести эту проблему, даже когда я удаляю locks.mdb, чтобы убедиться, что при повторном запуске этой процедуры не осталось никаких блокировок. После сообщения я могу сделать только полное отключение Matlab. Я проверил lmdb с помощью Matlab LMDB, и содержимое обоих, мой поезд и тестовый lmdb, похоже, в порядке. Параметры, которые я использовал для генерации lmdb: shuffle.

Примечание (может быть источником проблем здесь): в настоящее время я сталкиваюсь с проблемами MEX с этим созвездием. При первом запуске моей реализации я получаю сообщение об ошибке

"Неожиданное неизвестное исключение из файла MEX.."

для которого вывод терминала выглядит так:

I0322 11:42:09.465801 **875 layer_factory.hpp:77] Creating layer data
I0322 11:42:09.466012 **875 net.cpp:106] Creating Layer data
I0322 11:42:09.466030 **875 net.cpp:411] data -> data
I0322 11:42:09.466053 **875 net.cpp:411] data -> label
I0322 11:42:09.469091 **151 db_lmdb.cpp:38] Opened lmdb /home/user/caffe-master/data/train/lmdbTrain

Что я пробовал до сих пор: я реализовал блок try-catch, чтобы освободить (надеюсь) указатели, пробелы и т. Д. С помощью caffe.reset_all();"так, чтобы в ЛЮБОМ случае вызывался этот метод. при втором запуске я получаю вышеупомянутый вывод. Кажется, что мой первый запуск блокирует доступ к lmdb, что привело меня к удалению locks.mdb вручную между первым и вторым запуском -> тот же эффект, к сожалению. line работает с теми же lmdb. Кажется, что только запуск matcaffe поднимает эти проблемы и вопросы. Обратите внимание, что я хочу использовать Matcaffe для ручной инициализации моих весов для слоев - "weight_filler" в.prototxt не вариант. Мой Реализация MatCaffe с января 2016 года, и я также перекомпилировал mex-файл для caffe_ с правильной версией gcc (прежде чем он дал мне предупреждение, что моя версия gcc должна быть "x" -> изменена на "x" и перекомпилирована).

У вас есть другие идеи, рекомендации или предложения, пожалуйста?

Спасибо!

0 ответов

Другие вопросы по тегам