经过一天的不懈尝试和查找资料,终于完成了在windows上的caffe编译,也是参考了好几位前辈的经验分享,现分享过程如下:

前言:最好基于caffe-windows(https://www.github.com/happynear/caffe-windows)编译,否则因为一些语言语法的标准问题,要改很多东西,最后即使编译通过了,还不一定能用。

环境:win7 64位,vs2013,boost,cuda7.5,opencv2.4.11,还有caffe依赖的一些第三方库。

步骤:

从github下载caffe-windows后,解压到caffe-windows-master文件夹

1、依赖库下载安装:

boost_1.56_0-msvc-12.0-64(http://sourceforge.net/projects/boost/files/boost-binaries/1.56.0/),安装后目录是C:\local\boost_1_56_0;

opencv2.4.11下载安装,注意针对vs2013 64位;

第三方库安装,(http://download.csdn.net/detail/lyk_ffl/9522629   http://download.csdn.net/detail/lyk_ffl/9522633 )下载后解压到caffe-windows-master根目录下的3rdparty;并将里面的bin目录添加进系统环境变量path里;

生成caffe.pb.cc和caffe.pb.h文件,下载生成批处理工具GeneratePB.bat(http://download.csdn.net/detail/lyk_ffl/9522368),放在caffe-windows-master\scripts文件夹下,直接双击运行GeneratePB.bat。

2、使用vs2013编译caffe:

使用vs2013打开caffe-windows-master\buildVS2013中的MainBuilder.sln,其中的caffelib工程即caffe的基本框架;

添加头文件目录,caffelib工程的Properties\C/C++\General\Additional Include Directories,添加 ../../3rdparty/include;../../src;../../include;C:\local\boost_1_56_0;E:\opencv2411\include;E:\opencv2411\include\opencv;E:\opencv2411\include\opencv2 ,其中boost和opencv的路径根据自己电脑安装路径设置;

设置编译选项,设置caffelib工程的Properties\C/C++\Preprocessor,删除USE_CUDNN(我没有安装cudnn);

依次编译caffelib下面的cpp文件:blob.cpp,common.cpp,data_reader.cpp......solver.cpp,syncedmem.cpp;

依次编译caffelib/layers下面所有的.cpp和.cu文件;

依次编译caffelib/util下面所有的.cpp和.cu文件;

编译caffelib/proto下面的caffe.pb.cc文件;

依次编译caffelib/solvers下面的所有.cpp和.cu文件;

最后Build caffelib工程,生成caffe-windows-master\bin\caffelib.lib文件。

3、生成caffe工具可执行文件:

可执行文件工程主要有caffe工程,compute_image_mean工程,convert_imageset工程等,其他科参考这些工程自己添加,编译方法都是一样的。

添加头文件目录,caffe工程的Properties\C/C++\General\Additional Include Directories,添加 ../../3rdparty/include;../../src;../../include;C:\local\boost_1_56_0;E:\opencv2411\include;E:\opencv2411\include\opencv;E:\opencv2411\include\opencv2 ,其中boost和opencv的路径根据自己电脑安装路径设置;

设置编译选项,设置caffe工程的Properties\C/C++\Preprocessor,删除USE_CUDNN(我编译时没有加cudnn);

添加库文件目录,caffe工程的Properties\Linker\General\Additional Library Directories,添加E:\opencv2411\x64\vc12\lib;../../3rdparty/lib;..\..\bin;C:\local\boost_1_56_0\lib64-msvc-12.0;其中boost和opencv的路径参照自己电脑的安装目录;

添加依赖库文件,caffe工程的Properties\Linker\Input\Additional Dependencies中添加 opencv_calib3d2411.lib;opencv_contrib2411.lib;opencv_core2411.lib;opencv_features2d2411.lib;opencv_flann2411.lib;opencv_gpu2411.lib;opencv_highgui2411.lib;opencv_imgproc2411.lib;opencv_legacy2411.lib;opencv_ml2411.lib;opencv_nonfree2411.lib;opencv_objdetect2411.lib;opencv_ocl2411.lib;opencv_photo2411.lib;opencv_stitching2411.lib;opencv_superres2411.lib;opencv_ts2411.lib;opencv_video2411.lib;opencv_videostab2411.lib;cudart.lib;cuda.lib;nppi.lib;cufft.lib;cublas.lib;curand.lib;gflags.lib;libglog.lib;libopenblas.dll.a;libprotobuf.lib;libprotoc.lib;leveldb.lib;lmdb.lib;libhdf5_D.lib;libhdf5_hl_D.lib;Shlwapi.lib;gflags.lib;libprotobuf.lib;leveldb.lib;lmdb.lib;libhdf5.lib;libhdf5_hl.lib;caffelib.lib;ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;libprotobuf.lib;hdf5_tools.lib;hdf5_hl_fortran.lib;hdf5_fortran.lib;hdf5_hl_f90cstub.lib;hdf5_f90cstub.lib;hdf5_cpp.lib;hdf5_hl_cpp.lib;hdf5_hl.lib;hdf5.lib;zlib.lib;szip.lib;opencv_world300.lib;shlwapi.lib;leveldb.lib;cublas_device.lib;libglog.lib;lmdb.lib;cudnn.lib;libopenblas.dll.a;gflags.lib;我直接生成的是release版本,如果想生成debug的,有一些库文件需要改成xxd.lib(xx代表文件名)

Build caffe工程,生成caffe-windows-master\bin\caffe.exe文件。

其他工程编译设置一样。

4、测试

参照3编译convert_mnist_data工程,生成bin\convert_mnist_data.exe文件。

下载mnist测试数据集(http://download.csdn.net/detail/lyk_ffl/9522404),解压到caffe-windows-master\data文件夹下;

下载mnist册数数据模型生成和训练批处理工具create_mnist.bat和train_lenet.bat(http://download.csdn.net/detail/lyk_ffl/9522414),解压到caffe-windows-master\examples\mnist 文件夹下,;

修改该文件夹下lenet_solver.prototxt文件里的solver_mode为CPU;

运行create_mnist.bat生成文件夹mnist_test_leveldb和mnist_train_leveldb;

运行train_lenet.bat,即可看到训练精度了,最后可以达到99%以上。

终于在windows上成功编译caffe,特分享过程相关推荐

  1. 最新版本webrtc源代码在windows上的编译方法

    http://blog.csdn.net/choday/article/details/19978427 分类: webrtc 2014-02-26 14:34 1893人阅读 评论(8) 收藏 举报 ...

  2. 企业视频会议系统EasyRTC-SFU之mediasoup-demo在 Windows上的编译安装

    对于EasyRTC视频会议系统的开发,我们研发小伙伴这段时间真的很辛苦,好在最终的结果不错,碰到的问题都一一解决了,并且通过对不同RTC服务的调研,也在不断优化我们的EasyRTC. 比如在 Easy ...

  3. 在Kali 2022.2上成功编译驱动TP-LINK TL-WN726免驱版无线USB网卡 8188GU

    在Kali 2022.2上成功编译驱动TP-LINK TL-WN726免驱版无线USB网卡 8188GU 驱动安装过程 下载系统镜像 & 安装虚拟机 插上网卡 下载驱动文件 尝试编译驱动文件 ...

  4. Mavn 的 systemPath 无效,Windows 上成功,Linux 失败问题解决

    Maven 官网不建议使用 systemPath,这个是 Maven 自家专用的,SonarQube 也会扫描出来提示不规范,在实际使用中若依赖了 systemPath 的包被其他包依赖时其他包会找不 ...

  5. windows下编译linux内核,windows上可编译Linux内核

    编译过程: 1). 解压后默认的文件夹位置是在D:\Linux-0.11,如果你不是将文件解压到该目录下, 你要修改MinGW32目录下的MinGW32.bat文件,将里面的PATH指向MinGW32 ...

  6. [环境配置][原创]matconv在windows上GPU编译成功的环境

    成功环境1: windows10+VS2019+matlab2018b+cuda10.2+cudnn7.6.5+GTX940MX 成功环境2: windows10+VS2015+matlab2020b ...

  7. 在windows上Matlab 编译MatConvNet

    windows 10 64 bits matlab 2015b/2016a MatConvNet 1.0-beta20 或者从github 下载GIT repository CUDA GPU Comp ...

  8. windows上gn编译指引

    1.下载与环境配置 这里以google的angle跨平台gl库的windows编译作为示例 git clone https://chromium.googlesource.com/angle/angl ...

  9. Windows上PHP扩展的实现,部署及应用

    2019独角兽企业重金招聘Python工程师标准>>> PHP对扩展的编写要求非常严格.如果没有按照官方文档,使用对应的PHP版本,PHP源码版本,以及Visual Studio版本 ...

最新文章

  1. linux下的包和RPM管理
  2. EdgeGallery — MECM — 系统架构
  3. python3 xrange *的作用
  4. Android 的Parcelable接口
  5. mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file 原因调查
  6. 在 PHP 中使用命令行工具
  7. Sentinel流控规则_流控等待_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0037
  8. Google叫停出售刷脸监控技术,只因目前无法避免被滥用
  9. PIXI.JS兼容微信小游戏
  10. 微信小程序消息推送(java)
  11. Java连接数据库(学生管理系统案例,可以实现增删改查)
  12. 任我行CRM8.4破解版,任我行破解版免费下载,v8.4完整破解稳定版【捡肥皂】
  13. 《转》android利用socket与java后台交互的设计与实现
  14. mybais学习记录一——入门程序
  15. 【乐理学习】音程 升降调 力度标记
  16. Java 10年回顾:世界各地开发高手谈Java
  17. 手机照片局部放大镜_如何为不识字的老年人挑选一款合适的智能手机
  18. 工作中的一些经验和教训
  19. 绝对实用!学习计算机编程语言的方法
  20. URL 重写就是把URL地址重新改写(汗^_^)。

热门文章

  1. html 下拉框字体,select下拉框选择字体大小
  2. 11.Unity3D商业游戏源码研究-变身吧主公-SceneChat
  3. 前端战五渣学JavaScript——call、apply以及bind
  4. HTML5期末大作业:宠物网页设计——宠物之家17页(代码质量好) 学生DW网页设计作业源码 web课程设计网页规划与设计
  5. ssd固态硬盘的优缺点
  6. 0基础学习VR全景平台篇第36篇:场景功能-导览
  7. 最励志语句!——冲向阿里,反正光脚的不怕穿鞋的
  8. 阿里技术:浅谈分库分表那些事儿
  9. Java抽象类中,普通方法依赖抽象方法时,抽象方法有入参的实现方法
  10. javaee入门基础重要知识