前两篇关于配置caffe和使用它训练。
但是,有时候希望用它训练,但分类的时候在自己的程序里面。
所以研究了一下调用caffe库的方法。
在caffe的官方文件里面,就有classification.cpp作为demo。
如果自己建一个工程,首先需要把所有依赖库都加上。
包括:caffe(废话),boost,glog,gflag,hdf5,openblas,opencv,protobuf(后面这些事caffe要用的)
对于caffe,要把它的include文件夹和libcaffe.lib导入到工程里。
其他库由于nuget已经帮我们下好了,一样
1,在包含目录里添上:
../caffelib/include;
../caffelib/include/caffe/proto;
H:\NugetPackages\boost.1.59.0.0\lib\native\include;
H:\NugetPackages\gflags.2.1.2.1\build\native\include;
H:\NugetPackages\glog.0.3.3.0\build\native\include;
H:\NugetPackages\protobuf-v120.2.6.1\build\native\include;
H:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\include;
H:\NugetPackages\OpenCV.2.4.10\build\native\include;
2,在库目录里添上
../caffelib/lib;
H:\NugetPackages\boost_date_time-vc120.1.59.0.0\lib\native\address-model-64\lib;
H:\NugetPackages\boost_filesystem-vc120.1.59.0.0\lib\native\address-model-64\lib;
H:\NugetPackages\boost_system-vc120.1.59.0.0\lib\native\address-model-64\lib;
H:\NugetPackages\boost_thread-vc120.1.59.0.0\lib\native\address-model-64\lib;
H:\NugetPackages\boost_chrono-vc120.1.59.0.0\lib\native\address-model-64\lib;
H:\NugetPackages\glog.0.3.3.0\build\native\lib\x64\v120\Release\dynamic;
H:\NugetPackages\protobuf-v120.2.6.1\build\native\lib\x64\v120\Release;
H:\NugetPackages\OpenBLAS.0.2.14.1\lib\native\lib\x64;
H:\NugetPackages\hdf5-v120-complete.1.8.15.2\lib\native\lib\x64;
H:\NugetPackages\OpenCV.2.4.10\build\native\lib\x64\v120\Release;
H:\NugetPackages\gflags.2.1.2.1\build\native\x64\v120\dynamic\Lib;
3,在附加依赖项里面添上
libcaffe.lib
libopenblas.dll.a
libprotobuf.lib
opencv_highgui2410.lib
opencv_core2410.lib
opencv_imgproc2410.lib
libglog.lib
gflags.lib
hdf5.lib
hdf5_hl.lib
然后把classification.cpp作为demo运行就可以了。当然,也可以根据需要修改这部分代码,不难。
注,根据nuget默认目录不同,上面的目录也做出相应变化