windows下编译caffe

2023-10-26

windows在编译caffe有两种途径,

第一直接从github上clone windows分支的源码,根据提供的cmakeLIsts开始编译,这种方法自由选择编译器、依赖的库文件版本等,可能自由度更大,但是也有比较多的问题;

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

第二是从整理好的vs工程开始编译,比如Microsoft和happynear整理的vs工程。

https://github.com/Microsoft/caffe

https://github.com/happynear/caffe-windows

1.首先从源码编译开始:

参考博客:http://zhangxiaoya.github.io/2017/02/04/Caffe-windows-vs2015/

1.1bian环境

windows10

vs2015

cuda8.0

cudnn v5.1

python 2.7

cmake 3.8

cmake和python一定要添加到PATH里面。


1.2.clone caffe 的windows分支:https://github.com/BVLC/caffe/tree/windows。

1.3.python的一些依赖库安装的时候根据提示自行安装,我的环境numpy,six等之前已经安装配置完成。

1.4.编译的过程中需要下载依赖项,这里事先下载好,https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2;下载完成后放在C:\Users\USERNAME\.caffe\dependencies\download

1.5.进入scripts文件夹,把build_win.cmd的备份一下,复制一份,然后用编辑器打开,修改一些参数:

比如74行的,if NOT DEFINED WITH_NINJA set WITH_NINJA=0,设置为0,不用ninja编译器

76行,if NOT DEFINED CPU_ONLY set CPU_ONLY=0,设置为0,用GPU

83行,if NOT DEFINED USE_NCCL set USE_NCCL=0,设置为0,多个GPU才设置NCCL为非零

91行,if NOT DEFINED BUILD_MATLAB set BUILD_MATLAB=1,设置为1,编译matlab的接口


1.6.在未删除的文件157-172段中添加

-DCUDNN_ROOT=C:/Projects/caffe/cudnn-8.0-windows10-x64-v5.1/cuda ^
设置cudnn的路径,下载的cudnn版本5.1比较合适,版本6可能会导致编译错误。

1.7.然后进入script目录下,运行./build_win.cmd,开始编译。


1.8.编译完成后生成caffe.sln,用vs2015打开,然后编译。


接下来编译caffe的动态链接库:

caffe.binde编译出来的dll就是可以直接使用的动态链接库。

当然也可以自己暴露接口,然后编译


2.从整理好的vs工程开始编译,这里我用的是haapynear的project。

如果从Microsoft的工程,参考blog:http://blog.csdn.net/xierhacker/article/details/51834563

2.1环境

windows10

vs2015

cuda8.0

cudnn v5.1

python 2.7

cmake 3.8

cmake和python一定要添加到PATH里面。


2.2 复制CommonSettings.props.example并重命名为CommonSettings.props,修改配置,比如cuda的版本,cudnn的位置,GPU还是CPU,python和matlab接口,以及python和matlab的安装路径。

2.3 设置完成后,用匹配的vs版本打开Caffe.sln解决方案,考试编译,这时候在caffe_master目录下的build文件夹下会生成相应的编译文件,按照之前的博客配置python和matlab接口就可以使用了。


要想使用c++ 的接口还需要编译caffe 的动态链接库。


还有一篇参考博客:http://blog.csdn.net/akashaicrecorder/article/details/71016942



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows下编译caffe 的相关文章

  • IDEA 连接 数据库

    IDEA 连接 数据库 一 首先确保数据库服务是打开的 使用 mysql u root p 连接数据库服务器 若不能进入到 mysql 里面则说明 没有启动服务器 使用 net start mysql 命令启动 如果 net start m
  • 攻防世界Web赛题记录

    Cat 题目 https adworld xctf org cn task answer type web number 3 grade 1 id 4658 page 2 Writeup 攻防世界 web Cat XCTF 4th WHCT
  • QT tabWidget样式表

    背景设置 QTabWidget pane border 1px solid rgba 125 250 250 160 border radius 3px background transparent 透明 margin top 1px cl

随机推荐

  • npm报错:xxx packages are looking for funding run `npm fund` for details(解决办法)

    报错信息 30 packages are looking for funding run npm fund for details 报错原因 这里是开发者捐赠支持的提示 打开一个github的链接之后 会显示是否需要打赏捐赠的信息 解决方案
  • LPDDR4 JEDEC标准测试实例解析--地址总线写操作

    说完DQ信号的读写测试 接下来 再来聊一聊命令及地址总线 CA Bus 的测试 由于CA bus只有一个信号流向 因此 只需要进行写操作的测试即可 如下图所示 为JEDEC标准中定义的CA相关的测试参数 接下来 将对测试项逐一进行解析 tC
  • 【直接收藏】分享 42 个常用前端布局方案

    对 CSS 布局掌握程度决定你在Web开发中的开发页面速度 随着Web技术的不断革新 实现各种布局的方式已经多得数不胜数了 本篇文章总结了四十二种CSS的常见布局 这四十二种布局可以细分为如下几类 水平居中 垂直居中 水平垂直居中 两列布局
  • centos 64 位系统安装postgresql odbc 方法

    1 64位系统下 postgresql 的psqlodbc驱动下载地址 http www postgresql org ftp odbc versions src 2 64位系统下 安装psqlodbc需要的安装包 unixODBC 2 3
  • 机器学习实验(一)—Linear Regression

    前几天做了几个机器学习的简单实验 机器学习实验二 Logistic Regression 实验一是关于简单的线性回归的实验 下面是我的实验报告的截图 直接把word的内容撸过来 格式就全乱了 没有找到解决办法 直接上图吧 也是一种办法 后面
  • 关于差速移动机器人的运动学模型推导

    预备 在机器人的运动中 经常会涉及到航向推演 下面这篇博客写的挺好的 https blog csdn net heyijia0327 article details 44983551 在学习机器人运动模型推导的时候 有看到 网上别人的推导过
  • Rabbitmq的五种模式和案例

    消息生产者p将消息放入队列 消费者监听队列 如果队列中有消息 就消费掉 消息被拿走后 自动从队列删除 隐患 消息可能没有被消费者正确处理 已经消失了 无法恢复 应用场景 聊天室 案例 1 gt 首先准备依赖
  • linux查找nigux得路径,Dzongkha localization in Linux operating

    This message was created automatically by mail delivery software A message that you sent could not be delivered to one o
  • 网关(gateway)简介与作用

    网关的英文名称 gateway 又叫做网间连接器 协议转换器 网关是在采用不同体系结构或协议的网络之间进行互通时 用于提供协议转换 路由选择 数据交换等网络兼容功能的设施 网关在传输层上以实现网络互连 是最复杂的网络互连设备 仅用于两个高层
  • Lerp 实现匀速运动

    Lerp函数在Mathf Vector3 等类中都有 用法都类似 作用都是按照百分比取得从一个值过度到另外一个值的中间值 下面说的内容针对各中类的Lerp函数都是通用的 Lerp的常见 误用 是 Update Transform posit
  • 快速排序与快速选择

    快速排序算法就是将一列无序的数字排成有序 通过使用分治法 快速排序能够在O nlog n 的时间内完成 相比堆排序等其他也是O nlog n 复杂度的排序算法 快速排序的基数更小 因此效率也就越高 快速选择是在快速排序的基础上 在一列无序数
  • C语言中getchar()的用法详谈

    大多数人只看getchar 名字 以为其返回值是char 类型 但是getchar 的确不是char 类型 而是int 类型 其原型如下 int getchar void getchar有一个int型的返回值 当程序调用getchar时 程
  • 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度

    示例 1 输入 abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例 2 输入 bbbbb 输出 1 解释 因为无重复字符的最长子串是 b 所以其长度为 1 示例 3 输入 pwwkew 输出 3 解
  • 单元测试基础知识,面试用得上...

    1 什么是单元测试 在计算机编程中 单元测试又称为模块测试 是针对程序模块来进行正确性检验的测试工作 程序单元是应用的最小可测试部件 在过程化编程中 一个单元就是单个程序 函数 过程等 对于面向对象编程 最小单元就是方法 包括基类 抽象类
  • rocksdb 编译安装 日志

    Compilation RocksDB s library should be able to compile without any dependency installed although we recommend installin
  • 【面试专题】Spring篇②

    个人主页 个人主页 系列专栏 Java面试专题 目录 1 spring bean的循环依赖 2 springMVC执行流程 3 Springboot自动配置原理 4 Spring框架常见的注解 Spring SpringMVC Spring
  • channel的超时问题

    问题 并发编程的通信中 超时问题不可忽视 它指的是向channel写数据时发现channel已满 或者从channel尝试获取数据发现channel为空 如果不正确处理这些情况 很可能会导致整个goroutine锁死 i lt ch 不出问
  • Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1问题总结及解决方案

    原文地址 http blog csdn net dream it life article details 5488121 最近因为需要 要用C C Objective C三种C语言3C混编的开发程序 在当然方法也和大家说一下吧 就是在Xc
  • 【PaddleDetection】基于PaddleDetection的齿轮瑕疵检测:从模型训练到部署中的那些坑

    目录 0 题目简介 1 Baseline项目的本地化 1 1 飞桨环境配置 飞桨安装注意事项 1 2 PaddleDetection安装 PaddleDetection注意事项 1 3 数据集下载与配置 PaddleX安装注意事项 1 4
  • windows下编译caffe

    windows在编译caffe有两种途径 第一直接从github上clone windows分支的源码 根据提供的cmakeLIsts开始编译 这种方法自由选择编译器 依赖的库文件版本等 可能自由度更大 但是也有比较多的问题 https g