热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

win7vs2015caffeCPU版本配置爬坑

新版本的opencv已经不再支持vs2013,而我又想用一些新的函数,就将自己的编译器跟新到了vs2015.相应的caffe也需要用2015重新编译。还需要调用预测函数接口。网上的

新版本的opencv已经不再支持vs2013,而我又想用一些新的函数,就将自己的编译器跟新到了vs2015.相应的caffe也需要用2015重新编译。还需要调用预测函数接口。网上的大部分教程都是用Microsoft的2013版本,这个版本也已经很久没有更新过了。于是自己爬个坑。使用vs2015重新编译。本文参照了以下两篇博客。根据新版本特性加入了一些改动。

https://blog.csdn.net/xiao_mink/article/details/53699773

https://blog.csdn.net/fanhenghui/article/details/70666884

本文环境:win7+vs2015+cmake3.9.6+anaconda (py2.7),cpu版本。

我下载了ninja,但在编译过程中报错,所以后来没有使用,只使用了cmake的版本。

1.

从官方下载源码

https://github.com/BVLC/caffe/tree/windows

压缩包解压到自己的目录下。

下载依赖包,推荐迅雷下载。我使用时已经更新到了1.1.0版本,大家下载相应的最新版本就可以了。下载地址可以从caffe\scripts下的download_prebuilt_dependencies.py文件中找到。使用v140,2.7的版本,这里贴一下地址:https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2

2.

编辑build_win.cmd文件,为避免错误,请提前保存副本。需要修改以下内容。因为不使用ninja,设置 set WITH_NINJA=0

只使用CPU,所以set CPU_OnLY=1,建议使用搜索功能全部替换掉。设置后部分内容截图如下:win7 vs2015 caffe CPU版本 配置爬坑

之后并不需要删除其他的东西。

3.

打开命令行窗口,拖入build_win.cmd文件并执行,会下载并编译一些内容。当显示到下载依赖库时,记录下载目标的位置,关闭命令行窗口。将之前下载好的依赖库放到记录的目标位置。win7 vs2015 caffe CPU版本 配置爬坑

检查scripts下是否有新生成的build文件夹,有的话删掉,重新执行build_win.cmd。等待编译完成。这个过程中有可能cmake或者python出错,检查是否加入环境,实在不行就重新装一遍。网上有很多教程的。

如果遇到cmake找不到编译器的问题,可以使用vs2015自带的64位命令行  VS2015 x64 本机工具命令提示符  ,管理员权限运行build_win.cmd文件。

4.

编译成功后,会出现build文件夹,下面有caffe.sln,vs2015打开。在CMakeTargets中只留下 INSTALL 一项,其余移除。效果如下:win7 vs2015 caffe CPU版本 配置爬坑

在预处理器定义中加入以下内容:

WIN32
_WINDOWS
BOOST_ALL_NO_LIB
USE_LMDB
USE_LEVELDB
CPU_ONLY
USE_OPENCV
WITH_PYTHON_LAYER
CAFFE_BUILDING_STATIC_LIB
CMAKE_WINDOWS_BUILD
CAFFE_VERSION=1.0.0
GLOG_NO_ABBREVIATED_SEVERITIES
GOOGLE_GLOG_DLL_DECL=__declspec(dllimport)
GOOGLE_GLOG_DLL_DECL_FOR_UNITTESTS=__declspec(dllimport)
H5_BUILT_AS_DYNAMIC_LIB=1

CMAKE_INTDIR="Debug"

编译,然后应该顺利的成功了。

7.

大家可以使用caffe-d.exe测试以下mnist数据集例程,如果成功,那么vs2015的caffe就配置成功了。


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • d3dx9_26.dll极品飞车9修复工具下载及修复教程
    本文介绍了d3dx9_26.dll文件的修复工具下载和修复教程,解释了该dll文件的作用和安装方法,同时提供了其他dll文件下载安装的方法。文章涵盖了3d、windows、p2p、dll、visual studio等知识点,并由未来可期1212投稿。希望该技术和经验能帮到你解决dll文件相关技术问题。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
手机用户2602897931
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有