caffe目录下找不到classification.exe的解决办法
使用Caffe框架识别自己手写的图片需要使用到classification.exe文件,但是在编译完caffe的MainBuilder后,查阅bin目录下会发现没有classification.exe文件。
为了获得classification.exe,需要单独编译Classification工程以产生。
一、新建classification工程
1. 右键“解决方案‘MainBuilder’”->添加->新建项目,命名为classification。
2. 将“…\caffe-windows-master\examples\cpp_classification”下的classification.cpp文件复制到classification工程中的“源文件”文件夹中。
3. 修改运行平台:右键classification工程,选择属性,选择右上角“配置管理器”
4. 在“配置管理器”界面中,将classification工程的平台修改为x64(如果没有x64选项,则点击“新建”,在下拉框中选择“x64”选项),选中“生成”列。
二、配置新建工程的其他依赖项。
依次将classification工程属性页的VC++目录、链接器->输入选项修改成与caffe工程相同的属性值。具体做法,以VC++目录为例:打开classification属性页,选中VC++目录选项。
不要关闭“classification属性页”,直接点击右边“属性管理器”中的caffe工程,会发现属性页界面变成了“caffe属性页”,“包含目录”、“库目录”等属性的值都变成了caffe工程的属性值。将变化的地方复制,再点击回“属性管理器”中的classification工程,粘贴到相应的属性中,这样就将classification工程的VC++目录下的属性修改成与caffe工程的属性值一致了。
同理,将以下值都检查一遍,将属性值不同的地方修改成与caffe一致的属性值,这样就保证了classification工程与caffe工程属性值一致了。
配置属性->常规->输出目录:
配置属性->C/C++->常规->附加包含目录
链接器->常规->附加库目录
链接器->输入:
生成调试信息:
优化:
三、添加classification工程对caffelib工程的依赖
打开classification的属性页,选择引用
点击添加新引用,选择caffelib工程
将“使用库依赖项输入”设置为True
在解决方案视图中右击classification工程,选择“生成”,生成成功则在目录下出现classification.exe,就可以使用这个文件识别自己的图片了,具体的识别过程见下一篇博客(还没写)。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
生成时出现的错误:“无法打开cublas_v2.h”,原因是没有将CUDA的lib和include目录添加到项目中。
将“…\NVIDIA GPU ComputingToolkit\CUDA\v6.5\lib\x64”添加到classification工程的库目录中;
将“…\NVIDIA GPU Computing Toolkit\CUDA\v6.5\include”添加到工程的包含目录中;
再次生成,成功。
我编译了两次classification工程,第一次编译时另外遇到了无法打开输入文件“opencv_world310.lib”的错误问题,产生这个问题的原因是没有引入opencv3.1的lib和include的目录,引入即可解决。
参考:https://blog.****.net/csj664103736/article/details/54577134