检查失败:mdb_status == 0(2 对 0)没有那个文件或目录

Check failed: mdb_status == 0 (2 vs. 0) No such file or directory

我在训练数据时收到以下错误。我已经尝试了互联网上提供的所有解决方案,但似乎对我没有任何作用。我检查过 lmdb 文件的路径和大小不为零。但问题仍然存在。我不知道如何解决这个问题。

pooling_
I0411 12:42:53.114141 21769 layer_factory.hpp:77] Creating layer data
I0411 12:42:53.114586 21769 net.cpp:91] Creating Layer data
I0411 12:42:53.114604 21769 net.cpp:399] data -> data
I0411 12:42:53.114645 21769 net.cpp:399] data -> label
F0411 12:42:53.114650 21772 db_lmdb.hpp:14] Check failed: mdb_status == 0 (2 
vs. 0) No such file or directory
*** Check failure stack trace: ***
I0411 12:42:53.114673 21769 data_transformer.cpp:25] Loading mean file from: 
/home/Documents/Test/Images300/train_image_mean.binaryproto
@ 0x7fa9436a3daa (unknown)
@ 0x7fa9436a3ce4 (unknown)
@ 0x7fa9436a36e6 (unknown)
@ 0x7fa9436a6687 (unknown)
@ 0x7fa943b0472e caffe::db::LMDB::Open()
@ 0x7fa943afc644 caffe::DataReader::Body::InternalThreadEntry()
@ 0x7fa940e46a4a (unknown)
@ 0x7fa9406fe182 start_thread
@ 0x7fa942a8a47d (unknown)
@ (nil) (unknown)
Aborted (core dumped)

下面是我的文件设置:

name: "GoogleNet"
layer {
    name: "data"
    type: "Data"
    top: "data"
    top: "label"
    include {
        phase: TRAIN
    }
    transform_param {
        mirror: true
        crop_size: 224
        mean_file: "/home/Documents/Test/Images300/train_image_mean.binaryproto"
    }
    data_param {
        source: "/home/caffe/examples/zImageDetection/ImageDetection_train_lmdb"
        batch_size: 32
        backend: LMDB
    }
}
layer {
    name: "data"
    type: "Data"
    top: "data"
    top: "label"
    include {
        phase: TEST
    }
    transform_param {
        mirror: false
        crop_size: 224
        mean_file: "/home/Documents/Test/Image300/test_image_mean.binaryproto"
    }
    data_param {
        source: "/home/caffe/examples/zImageDetection/ImageDetection_val_lmdb"
        batch_size: 50
        backend: LMDB
    }
}

您没有正确设置 LMDB 目录的路径。转到您创建 LMDB 的目录并使用此命令获取绝对路径:

$ readlink -f <LMDB_directory_name>

使用这个路径,应该可以解决你的问题。

扩展 Harsh 的回答:

请务必仔细阅读 Caffe Imagenet page 上的设置步骤。您必须执行的一些步骤已嵌入文本中;不是所有的都在代码框里。

特定于这种情况,您必须编辑文件 examples/imagenet/create_imagenet.sh,将 path/to 引用替换为您环境中的正确路径:这是 imagenet 文件所在的位置。第 9 行和第 10 行需要您注意:

TRAIN_DATA_ROOT=/path/to/imagenet/train/
VAL_DATA_ROOT=/path/to/imagenet/val/

此外,在第 5 行,确保将您的 EXAMPLE 变量设置为具有足够 space 压缩图像的位置:train 需要 41Gb,但是预处理高水位线至少为 55Gb。 test只占用1.7Gb.