💓 博客主页:瑕疵的CSDN主页
📝 Gitee主页:瑕疵的gitee主页
⏩ 文章专栏:《热点资讯》
被Caffe的data层坑到凌晨三点,记录个真实解法
目录
昨晚改模型,Caffe训练一跑就崩: F0621 22:15:32.123456 12345 data_layer.cpp:102] Check failed: data_file_ != NULL (null vs. not null)
我盯着屏幕看了半小时,以为是数据没下载。结果发现是配置文件里source写成了相对路径。
核心根源:Caffe的Data层要求source必须是绝对路径。我用了"train.txt"这种相对路径,但Caffe在启动时会从当前目录找,实际数据在另一个位置。
错误示范(我踩过坑的配置):
# train.prototxt
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
data_param {
source: "data/train.txt" # 错!相对路径,Caffe找不到
batch_size: 64
}
}
正确姿势(直接上代码):
# train.prototxt
layer {
name: "data"
type: "Data"
top: "data"
top: "label"
data_param {
source: "/home/user/project/data/train.txt" # 绝对路径!必须写全
batch_size: 64
}
}
我测试过三次:第一次改相对路径,报错;第二次用绝对路径,训练跑通。别再玩“相对路径”这种花活了。
(就是那个Check failed的红字,坑死人)
避坑总结:
Caffe的报错信息太敷衍了,应该直接写“source路径不存在”。这次差点把服务器当硬盘用。记住:绝对路径,绝对路径,绝对路径。 下次再报这个错,先删掉所有相对路径——血泪教训。


