欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 人工智能 > caffe >内容正文

caffe

win10 vs2013 caffe静态库配置自己的工程 -ag凯发k8国际

发布时间:2024/9/21 caffe 14 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 win10 vs2013 caffe静态库配置自己的工程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

win10 vs2013 caffe静态库配置自己的工程


转载请注明原出处:http://blog.csdn.net/ouyangfushu/article/details/79450501

作者:sygoing

qq:  2446799425

通常我们训练好caffe模型后需要根据自己的需求添加基于caffe前向过程的新算法、模型测试和调试,再到最后的工程部署,当然如果仅仅是测试,我们也可以用caffe官方给的classification.cpp工程(该工程在编译工程中)进行改写,但是对于部署不利。为了方便我们需要将caffe第三方库作为依赖配置自己的项目。

1、         编译所需要的caffe静态库

首先在vs2013中编译caffe的gpu版本(包含cuda8.0和cudnn5.1),编译过程不再赘述,个人认为比较好的编译教程:http://blog.csdn.net/yj3254/article/details/52290401。

2、         以classification.cpp为例配置

重点在于三方库的配置,过程繁琐但是并不复杂,我们开始吧!

(1)新建文件夹caffe和caffe3rdpaty,caffe中的子文件夹为include和lib,其中include内是caffe的头文件,lib中为libcaffe.lib。文件结构图1-3

                                       

图1

 

                     

图2

                      

图3

(2)vs2013中新建win32控制台程序(空项目),releasex64配置如下,右键工程属性:

1)         包含目录:主要包含caffe库及caffe所依赖的三方库,boost、gflags、glog、opencv2.4.11、openblas、protobuf、cuda,这些都经过我自己重新整理,原来的文件嵌套太深,不忍直视,目录此处用的相对目录以便于工程拷贝到其他地方,避免再一次去配置绝对路径。

再贴一下以供参考:具体路径可以根据自己文件路径而定,文件名可以看到三方依赖就这么几个而已。

..\..\3rdpartynew\caffe\release\include

..\..\3rdpartynew\caffe3rdparty\boost.1.59.0.0\include

..\..\3rdpartynew\caffe3rdparty\gflags.2.1.2.1\include

..\..\3rdpartynew\caffe3rdparty\glog.0.3.3.0\include

..\..\3rdpartynew\caffe3rdparty\protobuf-v120.2.6.1\include

..\..\3rdpartynew\caffe3rdparty\openblas.0.2.14.1\include

..\..\3rdpartynew\caffe3rdparty\opencv.2.4.11\include

c:\programfiles\nvidia gpu computing toolkit\cuda\v8.0\include

2)库目录

 


..\..\3rdpartynew\caffe\release\lib

..\..\3rdpartynew\caffe3rdparty\boost_chrono-vc120.1.59.0.0\address-model-64\lib

..\..\3rdpartynew\caffe3rdparty\boost_date_time-vc120.1.59.0.0\address-model-64\lib

..\..\3rdpartynew\caffe3rdparty\boost_filesystem-vc120.1.59.0.0\address-model-64\lib

..\..\3rdpartynew\caffe3rdparty\boost_system-vc120.1.59.0.0\address-model-64\lib

..\..\3rdpartynew\caffe3rdparty\boost_thread-vc120.1.59.0.0\address-model-64\lib

..\..\3rdpartynew\caffe3rdparty\gflags.2.1.2.1\x64\v120\dynamic\lib

..\..\3rdpartynew\caffe3rdparty\glog.0.3.3.0\lib\x64\v120\release\dynamic

..\..\3rdpartynew\caffe3rdparty\protobuf-v120.2.6.1\lib\x64\v120\release

..\..\3rdpartynew\caffe3rdparty\openblas.0.2.14.1\lib\x64

..\..\3rdpartynew\caffe3rdparty\hdf5-v120-complete.1.8.15.2\lib\native\lib\x64

..\..\3rdpartynew\caffe3rdparty\opencv.2.4.11\lib\x64\v120\release

c:\programfiles\nvidia gpu computing toolkit\cuda\v8.0\lib\x64

 

3)预处理器定义

 

 

 

_crt_secure_no_warnings

boost_all_no_lib

caffe_version=1.0.0

cmake_windows_build

glog_no_abbreviated_severities

google_glog_dll_decl=__declspec(dllimport)

google_glog_dll_decl_for_unittests=__declspec(dllimport)

h5_built_as_dynamic_lib=1

use_caffe

use_cudnn

use_opencv

use_leveldb

use_lmdb

cmake_intdir="release"

ndebug

_scl_secure_no_warnings

_unicode

unicode

 

4)链接器定义

 

 

libcaffe.lib

libopenblas.dll.a

libprotobuf.lib

opencv_highgui2411.lib

opencv_core2411.lib

opencv_imgproc2411.lib

libglog.lib

gflags.lib

gflags_nothreads.lib

hdf5.lib

hdf5_hl.lib

cublas.lib

cublas_device.lib

cudart.lib

cudnn.lib

curand.lib

cuda.lib

 

5)dll配置,运行会报丢失若干dll,这个时候将编译caffe时生成的dll(build\x64\release)拷贝到你项目的x64\release下即可。

6)还有一点需要注意:在调试的时候会出现,unknownlayer type,这可能是一个bug,因为在编译caffe的环境中调试classification.cpp不会出现这个问题,单独配置却出现,仔细看了下代码,跟踪调试发现在layer_factory.hpp中创建层时 registry为空,没有成功创建对应层名的创建器,这个是caffe静态库中工厂模式创建层的一个问题(工厂模式编程大量使用虚类、虚基类和虚函数,静态库下无法链接,比较浅显的解释,求大家批评指正),动态库不存在该问题。

     

 

解决办法:强制创建注册层信息,新建一个rgister.hpp,添加你所测试的网络所用到层,包含对应层的.hpp头文件,编写强制创建。然后在main函数所在cpp文件中包含该头文件。

 

一切准备就绪,根据自己的需求编写相应的测试代码(可先用官方的分类classification.cpp作为例子小试牛刀),enjoyyourself !!

 

参考博客:

1、http://blog.csdn.net/auto1993/article/details/70198435。

2、http://blog.csdn.net/wuzhiyang95_xiamen/article/details/52574668。

3、https://www.cnblogs.com/zy230530/p/7050282.html。

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是ag凯发k8国际为你收集整理的win10 vs2013 caffe静态库配置自己的工程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图