Тестирование из файла 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 ответ
Смотрите мой ответ здесь. Не забудьте вычесть среднее, иначе вы получите низкую точность. Ссылка на код, размещенный выше, позаботится об этом.