Caffe CPU_ONLY编译方法总结

    最近由于需要使用Caffe CPU版本,因此不得不自己编译,哎!各种大坑。不过最终的结果都是好的!下面有四种种方法又简到难依次介绍!

第一种:最简单方式。

     牛顿说过他看的远是因为他站在巨人的肩膀上。对于工程人员来说最重要的是把理论应用到实际,而理论本身可以次之。因此,我们完全可以利用别人的成果。用过Caffe-windows版的想必都知道happynear大神了,大神最近给我们提供了cpu_only版(说到这我想大哭一场,我是尝试了所有方法,最后才发现,原来大神已经给我们准备好了!)

happynear的github连接:https://github.com/happynear/caffe-windows

这种方法对于新手,工程人员,刚从Linux迁移过来的人很适用。至于整个的编译过程,我就不多说了,happynear已经说得很清楚了。(此方法本人已经成功)

第二种:中下等难度

    之所以说的中等难度,因为需要的第三方库已经提供给我们,我们不需要自己编译。这种方法也非常简单,而且有教程呦,根据教程一步一步走就可以了。不过有的地方需要注意,教程说把第三方库放到caffe的根目录下,我一直没明白这个根目录指的是什么,因为这一步和后面添加静态库的路径有关。最后的解决方法是,第三方库可以放到任意地方,静态库路径用绝对路径就可以了。这种方法也能成功。

  这种方法的优缺点:

  优点是:整个工程相对来说小了不少,因为只有CPU了。

  缺点:这个比较重要,我就因为这个最终不得不放弃这种方法。

    原作者提供的caffe源码比较老,很多新层没有添加进来,因此没办法使用新层,这个真的比较难受。当然这个也有解决方法,下面再说。另外一个缺点就是他使用的静态库比较新,可能当你想把caffe嵌入到你的程序中有问题,这个没有验证过,只是个人观点。不过总体来说还是非常不错了,整个过程很简单,而且还有小小的测试程序,很有成就感。

教程连接:稍后贴出来

第三种:中上等难度

    这种方法就是解决第二种方法中库比较老的问题。根本的做法是删除源码中.cu文件,这些文件是CUDA的不需要。这个删除过程可参照教程中提到的根据caffe_CPU_Only中的文件删除不必要的就可以了,其实主要在layers文件里,把.cu文件删除就可以了。其实主要在src文件夹里文件自己仔细检查,还有inlucde文件里文件也要自己检查。还有test文件夹里的caffe.cpp文件也要用新的。其他的可以暂时不用管。这种方法最主要的就是修改各种文件。其他的工程和教程中一样。建议使用happynear大神提供的文件,他自己加了很多新层。这种方法不适合新手。

第四种:最难的方法

    从头开始编译,一个库一个库开始,这个真是不容易。不过幸好教程里写的比较明了。不过这种方法需要对CMake很熟悉。我稀里糊涂整了半天也没弄好,有时间再弄弄。这种方法建议有时间的同学多玩玩,涨不少知识。

参考链接:http://blog.csdn.net/fengbingchun/article/details/47905907

祝各位看官好运了!





你可能感兴趣的:(Caffe CPU_ONLY编译方法总结)