Тестирование из файла LMDB в Caffe

Мне интересно, как настроить ТОЛЬКО тестовую фазу в Caffe для файла LMDB. Я уже обучил свою модель, все кажется хорошим, мои потери уменьшились, и результаты, которые я получаю на изображениях, загружаемых одно за другим, также кажутся хорошими.

Теперь я хотел бы посмотреть, как моя модель работает на отдельном тестовом наборе LMDB, но, похоже, не может сделать это успешно. Для меня было бы не идеально выполнять цикл, загружая изображения по одному, поскольку моя функция потерь уже определена в caffe, и это потребовало бы от меня ее переопределения.

это то, что у меня есть до сих пор, но результаты этого не имеют смысла; когда я сравниваю потери, которые я получил от поезда, с потерями, которые я получаю от этого, они не совпадают (на несколько порядков). Кто-нибудь знает, в чем может быть моя проблема?

caffe.set_device(0)
caffe.set_mode_gpu()

net = caffe.Net('/home/jeremy/Desktop/caffestuff/JP_Kitti/all_proto/mirror_shuffle/deploy_JP.prototxt','/home/jeremy/Desktop/caffestuff/JP_Kitti/all_proto/mirror_shuffle/snapshot_iter_10000.caffemodel',caffe.TEST)


solver = None  # ignore this workaround for lmdb data (can't instantiate two solvers on the same data)
solver = caffe.SGDSolver('/home/jeremy/Desktop/caffestuff/JP_Kitti/all_proto/mirror_shuffle/lenet_auto_solverJP_test.prototxt')
niter = 100
test_loss = zeros(niter)
count = 0
for it in range(niter):
    solver.test_nets[0].forward()  # SGD by Caffe

    # store the test loss

    test_loss[count] = solver.test_nets[0].blobs['loss']
    print(solver.test_nets[0].blobs['loss'].data)
    count = count+1

person jerpint    schedule 27.06.2016    source источник


Ответы (1)


См. Мой ответ здесь. Не забывайте вычитать среднее значение, иначе вы получите низкую точность. Об этом позаботится ссылка на код, размещенный выше.

person Harsh Wardhan    schedule 28.06.2016
comment
спасибо, но мне кажется, что должен быть способ попроще. В вашем коде вам нужно вручную указать сети, как отсеивать данные, проходящие через все это одно за другим. Тем не менее, на этапе обучения для той же самой структуры данных caffe позаботится обо всем автоматически. Вы знаете, как сделать что-то подобное? - person jerpint; 28.06.2016
comment
Как продолжение, с использованием техник, аналогичных вашей, пройти мой набор тестов, который значительно меньше, чем у моего набора тренировок, занимает действительно очень много времени. Я полагаю, что структура caffe оптимизирована для высокой степени распараллеливания при выполнении этого типа вычислений, поэтому я стараюсь избегать ее узких мест. - person jerpint; 29.06.2016
comment
Вы пробовали это caffe test -model=models/bvlc_reference_caffenet/train_val.prototxt --weights=models/bvlc_reference_caffenet/<caffenet_train>.caffemodel --iterations=6400 --gpu=0? - person Harsh Wardhan; 29.06.2016
comment
Еще нет, но я попробую, как мне сохранить результаты, если я собираюсь использовать терминал напрямую? - person jerpint; 29.06.2016
comment
Просто добавьте >> outfile.txt после указанной выше команды. А это базовая вещь в Linux. - person Harsh Wardhan; 29.06.2016