Мне интересно, как настроить ТОЛЬКО тестовую фазу в 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