首页 > 其他 > 详细

Caffe编译错误整理

时间:2020-02-29 21:35:14      阅读:110      评论:0      收藏:0      [点我收藏+]

今天编译caffe-ssd遇到编译错误:

1   Line 9690: 3>E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(141): error C2061: syntax error: identifier SliceLayer
2     Line 9690: 3>E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(141): error C2061: syntax error: identifier SliceLayer
3     Line 9696: 3>E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(262): error C2061: syntax error: identifier NormalizeLayer
4     Line 9696: 3>E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(262): error C2061: syntax error: identifier NormalizeLayer
5     Line 9702: 3>E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(272): error C2061: syntax error: identifier InnerProductLayer
6     Line 9702: 3>E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(272): error C2061: syntax error: identifier InnerProductLayer
7     Line 10141: 4>LINK : fatal error LNK1104: cannot open file ..\lib\Debug\caffe-d.lib

经查,是下面文件里没有添加上面对应的三个头文件。

技术分享图片

 

 

添加下面三行到layer_factory.cpp:

#include "caffe/layers/slice_layer.hpp"
#include "caffe/layers/normalize_layer.hpp"
#include "caffe/layers/inner_product_layer.hpp"

再次编译,报错:

E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(265): error C2955: ‘caffe::NormalizeLayer‘: use of class template requires template argument list
E:\GitHub\caffe-ssd-windows\include\caffe/layers/normalize_layer.hpp(18): note: see declaration of ‘caffe::NormalizeLayer‘
E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(267): note: see reference to function template instantiation ‘boost::shared_ptr<caffe::Layer<Dtype>> caffe::GetNormalizeLayer<float>(const caffe::LayerParameter &)‘ being compiled
 with
 [
 Dtype=float
 ]
E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(265): error C2514: ‘caffe::NormalizeLayer‘: class has no constructors
E:\GitHub\caffe-ssd-windows\include\caffe/layers/normalize_layer.hpp(18): note: see declaration of ‘caffe::NormalizeLayer‘
E:\GitHub\caffe-ssd-windows\src\caffe\layer_factory.cpp(275): error C2514: ‘caffe::InnerProductLayer‘: class has no constructors

查找原因:

 return shared_ptr<Layer<Dtype> >(new NormalizeLayer(param));

改为(添加了<Dtype>):

return shared_ptr<Layer<Dtype> >(new NormalizeLayer<Dtype>(param));

将:

return shared_ptr<Layer<Dtype> >(new InnerProductLayer(param));

改为(添加了<Dtype>):

return shared_ptr<Layer<Dtype> >(new InnerProductLayer<Dtype>(param));

然后就编译通过了。

 

Caffe编译错误整理

原文:https://www.cnblogs.com/juluwangshier/p/12386031.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!