使用 ImageData 层在 caffe 中训练基本网络时出错

Error while training a basic network in caffe using ImageData layer

我正在尝试开始使用 Caffe 训练图像分类网络。我想要求解器使用我自己的数据训练模型。我正在使用 "ImageData" layer 并准备了一个 'file_lists.txt' 文件。 但是我收到这些错误消息。

E0211 10:43:12.274907 60653568 io.cpp:80] Could not open or find file /my/path/img/myfirstimage.jpg 123
F0211 10:49:29.643215 146333696 image_data_layer.cpp:148] Check failed: cv_img.data Could not load /my/path/img/myfirstimage.jpg 123

'myfirstimage.jpg''file_lists.txt'中的第一张图片,123是标签。我检查过该文件位于路径 '/my/path/img/myfirstimage.jpg'.
它似乎试图使用包含路径标签的字符串加载图像。从查看文档和示例来看,除非我搞砸了,否则这不应该发生,但我什么也没看到。有人可以帮忙吗?

mynet.prototxt开头:

name: "mynet"
layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  image_data_param {
    source: "/my/path/file_list.txt"
    batch_size: 50
    new_height: 256
    new_width: 256
  }
  include {
      phase: TRAIN
  }
}
...

这里是mynet_solver.prototxt:

net: "/my/path/mynet.prototxt"
test_iter: 10
test_interval: 500
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0000
lr_policy: "inv"
gamma: 0.0001
power: 0.75
display: 100
max_iter: 50000
snapshot: 5000
snapshot_prefix: "/my/path"
solver_mode: CPU

我使用的命令:

caffe train -solver ./mynet_solver.prototxt

您的诊断是正确的:caffe 似乎正在尝试读取文件 "/my/path/img/myfirstimage.jpg 123",即路径 标签。
确保您的 '/my/path/file_list.txt' 具有此 精确 格式:

即:路径与标签之间只有一个space(不是制表符或任何其他字符)。除了表示行尾的新行字符外,标签后 没有其他 白色 space 字符。
Caffe 使用 c++ code 来解析 '/my/path/file_list.txt' 因此解析不是很灵活。