Тестирование из файла 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

1 ответ

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

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