我正在试图找出为什么我的MatCaffe实现无法从我使用convert_imageset.bin创建的火车lmdb中弹出。
我所做的基本上就是这样:
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关机。 我用Matlab LMDB和两者的内容检查了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 - >不幸的是,效果相同。命令行的“手动”列车可以使用相同的lmdb。只有matcaffe运行似乎提出这些问题和问题。请注意,我想使用Matcaffe手动初始化图层的权重 - .prototxt中的“weight_filler”不是一个选项。 我的MatCaffe实现是从2016年1月开始的,我还用正确的gcc版本重新编译了caffe_的mex文件(之前它给了我警告,我的gcc版本应该是“x” - >更改为“x”并重新编译)。
您还有其他想法,建议或意见吗?
谢谢!