2

我在训练数据时收到以下错误。我已经尝试了互联网上给出的所有解决方案,但似乎没有任何对我有用。我检查了 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
    }
}
4

2 回答 2

1

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

$ readlink -f <LMDB_directory_name>

使用此路径,它应该可以解决您的问题。

于 2016-04-11T16:56:33.767 回答
1

要扩展苛刻的答案:

请务必仔细阅读Caffe Imagenet 页面上的设置步骤。您必须执行的一些步骤嵌入在文本中;并非所有这些都在代码框中。

具体到这种情况,您必须编辑文件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 变量设置为具有足够空间用于压缩图像的位置:train需要41Gb,但预处理高水位标记至少为55Gb。 测试只占用1.7Gb。

于 2016-05-19T17:32:28.847 回答