想利用之前编译的用caffe-ssd来跑Face-Boxes失败。
报错信息:
[libprotobuf ERROR google/protobuf/text_format.cc:274] Error parsing text-format caffe.NetParameter: 1874:15: Message type "caffe.PriorBoxParameter" has no field named "fixed_size".
F0408 16:08:02.770246 21886 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: examples/faceboxes/train.prototxt
*** Check failure stack trace: ***
@ 0x7fc861c3b5cd google::LogMessage::Fail()
@ 0x7fc861c3d433 google::LogMessage::SendToLog()
@ 0x7fc861c3b15b google::LogMessage::Flush()
@ 0x7fc861c3de1e google::LogMessageFatal::~LogMessageFatal()
@ 0x7fc8624bda11 caffe::ReadNetParamsFromTextFileOrDie()
@ 0x7fc86250ac4b caffe::Solver<>::InitTrainNet()
@ 0x7fc86250b057 caffe::Solver<>::Init()
@ 0x7fc86250b3da caffe::Solver<>::Solver()
@ 0x7fc86249b6e3 caffe::Creator_SGDSolver<>()
@ 0x40ace8 train()
@ 0x40765e main
@ 0x7fc860bab830 __libc_start_main
@ 0x407eb9 _start
@ (nil) (unknown)
在caffe-ssd中加入model/FaceBoxes 来自[https://github.com/zeusees/FaceBoxes]最后训练报错
报错原因分析
对比caffe中proto中的PriorBoxParameter中的参数发现,face_boxes的caffe工程(https://github.com/zeusees/FaceBoxes)中使用的代码与caffe-ssd相比增加了三个参数:
repeated float fixed_size = 14;
repeated float fixed_ratio = 15;
repeated float density = 16;
因此在train.prototxt 的地1874行报错,主要原因是"src/caffe/layers/prior_box_layer.hpp"中没有关于fixed_size的部分
我的尝试
替换整个src/caffe/layers部分重新编译,编译prior_box_layer.hpp会报错。因此只能重新下载整个文件,重新编译,流程参考https://www.jianshu.com/p/92ddf5419267
上一篇中提到的caffe安装部分