错误描述:
参见:https://github.com/BVLC/caffe/issues/1986
运行sh ./example/mnist/train_lenet.sh时出现错误:layer_factory.hpp:77] Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Data (known types: )
原因分析(大概):
Caffe中每种层都需要在layer_factory中“注册”,然后才能根据prototxt中创建出来,然后build caffe的tools时,编译命令链接到caffe的静态库.a文件,由于没有直接引用各个层,所以这些层的代码并没有从.a文件中编译到./build/tools/caffe.bin中,导致无法找到层的类型。
成因推测:
我编译次数不多,推测是使用cmake生成Makefile时的参数不对,导致编译的工具集与caffe的静态库链接。
解决办法:
修改Makefile中关于tools相关部分(注意根据情况不同修改,注意备份):
原版: