调试caffe,用已有的网络训练自己的数据集的时候(我这里做的是二分类)。在生成均值文件之后,开始train,发现出现了这个问题。
1,路径正确,却读不到图片。
[db_lmdb.hpp:15] Check failed: mdb_status == 0 (2 vs. 0) No such file or directory
我发现这check failed的上面有一句话:就是loading file form :data/ilsvrc12/imagenet_mean.binaryproto
这说明是在找均值文件的时候没找到。然后,我们看看那些地方涉及到了这个信息。
我发现,只有这几个地方涉及到了均值文件。打开 train_val.prototxt把均值文件改为绝对路径。这下肯定出不了错误。最好不用相对路径描述文件。因为caffe中很多错误是由于路径问题。
在这之中cat_data是我的诗句存储的地方。就像mnist一样。是个文件夹。
再次运行,
可以运行了。
2、磁盘空间不足
Check failed: proto.SerializeToOstream(&output)
解决办法:查看磁盘空间
我的caffe目录就在home下。因此,是由于在训练的时候存储snapshot没有了空间。
释放掉以一些空间,继续运行。
3、 明明有文件列表,却说为空。
- 1
训练prototxt 文件如下:
而且txt文件明明有东西。原因在这个图片。仔细看看发现:data_param有问题。改了image_data_param 即可。
4、 Expected integer or identifier
- 1
- 2
打开我的VGG_CNN_F_train_test.prototxt。找到329,发现没错误。
解决方法:
从stackoverflow 上查到了答案。 Your prototxt is malformed with both layer and layers messages.
发现果然,我的prototxt中新加的一层写成了layers应该为layer。这是新老caffe版本转换过程中的一个容易出现的问题。