Win10上使用VS2015编译Caffe2
Caffe2的官网:https://caffe2.ai/
1、下载、安装及相关准备
在Caffe2的官网点击"Get Started",即进入安装说明页面。官方还未提供编译好的binaries,所以需要自己使用源代码编译。

选择平台如下:

按照官网,需要Win10系统及以上,但是似乎有些博客也有使用了Win7,但我本人是使用Win10,所以本文只针对Win10系统展开。
在准备阶段,我主要下载或安装的有:
1、Python2.7.14 https://www.python.org/downloads/release/python-2714/
2、cmake 3.11 https://cmake.org/download/
3、CUDA9.0 https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
4、cuDNN v7.0.5 for CUDA9.0 https://developer.nvidia.com/rdp/cudnn-archive
5、visual stduio 2015 Enterprise(用Community和Professional应该也是没问题的,只是刚好有人给我Enterprise的安装包)
6、Python的库,只安装了必须的几个:future、hypothesis、numpy、protobuf、six,可选的那些我都没安装(我是使用pip install安装的 )
7、另外,我原来自己还有安装了Opencv3.4,因为我是使用Caffe2来处理图像的
8、安装git,版本应该无所谓吧,主要是用来下载源码
9、下载caffe2源码, caffe2(https://github.com/caffe2/caffe2)现在已和pytorch(https://github.com/pytorch/pytorch)合并了,所以使用git下载:
git clone --recursive https://github.com/pytorch/pytorch.git
接着说一下安装过程中的一些注意或者遇到的问题:
1、安装vs2015一般选自定义,然后勾选Visual C++的相关选项。
2、安装vs失败很麻烦,因为有时候卸载不干净会影响CUDA安装里面Visual studio integrate组件的安装(稍后会写另一篇博客来说明)
3、下载caffe2源码不要直接Download Zip下载压缩包,那样会导致第三方库缺失,即third_party文件夹里面的一些文件。但是目前从github上之间git clone源码速度很慢,都是10+k甚至几k/s,更崩溃的是下载途中还会经常中断,然后又得重新来了,所以我试了很多次都没成功,翻墙速度也很慢(也可能是我的VPN不给力),后来是托人在香港那边下载的。
4、下载cuDNN解压缩后,是一个包含include、lib和bin的文件夹,将这三个文件夹里的文件分别拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\文件夹下的include、lib和bin下(当然,以你的CUDA的安装路径为准,我是采用默认安装路径)
2、编译安装
git得到pytorch文件夹后,在pytorch的scripts文件夹里有build_windows.bat脚本文件,可以用记事本、Notepad或者sublime text等编辑器打开,如果懂得脚本和Cmake命令就可以完全读懂。里面主要需要做的是指定编译器和开启编译选项。在该文件里加入这两句,可以在“pip install pyyaml”语句上方:
set USE_CUDA=ON
set CMAKE_GENERATOR="Visual Studio 14 2015 Win64"
CMAKE_GENERATOR即是设置编译器,USE_CUDA只是是否使用CUDA,由于我是要使用GPU,如果你不需要则不必加。
另外,下面的cmake命令则可以设置编译选项,比如是否使用GLOG、GFLAGS等等第三方库,由于我本人是要使用Caffe2来部署训练好的模型,所以我只开启了USE_OPENCV,如下图所示。

接着以管理员身份打开vs2015开发人员命令提示,即Developer Command Prompt。使用cd命令至pytorch的script文件夹下,然后运行build_windows.bat,编译需要稍长的时间。
编译成功后,在pytorch文件夹下的build文件夹里,使用vs打开Caffe2.sln。我选择了Release x64平台下,右键ALL_BUILD生成解决方案。然后再右键INSTALL生成解决方案,这两个过程也是比较久的。INSTALL编译成功后,在C:\Program Files就出现了Caffe2文件夹,里面主要存放了生成的include、lib和bin。
Win10上使用VS2015编译Caffe2的更多相关文章
- WIN10+QT5.9+VS2015编译RedisDesktopManager
原文:WIN10+QT5.9+VS2015编译RedisDesktopManager 官方源码编译安装说明地址:http://docs.redisdesktop.com/en/latest/insta ...
- win10上的vs2015项目到win7的2015无法使用
- VS2015在win10上编译的程序在Win7上运行的方法
在win10系统上使用vs2015编译了一个32位的应用程序.在win7上报错无法启动. 下面的win7系统上是可以运行的 无法运行的win7系统: 报错: 1.应用程序无法正常启动(0xc00000 ...
- 使用vs2015编译、部署ssd-caffe(weiliu89版,CPU模式)
前因项目所需,须训练一个快速模型以实现目标物体的实时检测.历经多次实践,发现MobileNetSSD网络符合要求,故在本人工作PC上部署weiliu89版本的ssd-caffe以期用之训练项目要求之模 ...
- VS2015编译OpenSSL
概述 OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的 ...
- Hadoop 3.2.1 win10 64位系统 vs2015 编译
Hadoop 3.2.1 win10 64位系统 vs2015 编译 1 环境配置 1.1 JDK下载安装 1.1.1 下载 JDK 1.8 (jdk1.8.0 ...
- caffe搭建--caffe- win10 vs2015 编译(支持GPU)--注意在cmake的时候需要根据情况仔细修改配置
--http://blog.csdn.net/longji/article/details/60964998 注意: 在cmake的时候需要根据情况仔细修改配置,比如,如果gpu的能力不足3.0的话, ...
- vs2015编译OBS-Studio
编译之前的准备: 系统win10 QT5.7.0 VS2015 CMake 3.13.4 obs vs2015环境依赖包:dependencies2015 obs-studio 24.0 ====== ...
- VS2015编译boost1.62
VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...
随机推荐
- ConditionalOnProperty
配置Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效 1.matchIfMissing属性:从application.properties ...
- Android 仿QQ界面的实现
废话不说 上图 适合新手学习 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQ ...
- iOS - 统计代码行数
终端 -> 进入文件夹 查看每一行的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib ...
- Eclipse和MyEclipse使用技巧--解决MyEclipse中的js报错的小方法
今天,下了个模版,但是导进去的时候发现js会报错.看了下其他都没有错误.而有一个js报错误,请原谅我有点红色强迫症,不能留一点红色 . 错误如下:Syntax error on token " ...
- PHP异步扩展Swoole笔记(1)
安装Swoole扩展 通过pecl安装, 系统中最好已经有http2依赖, 如果是Ubuntu, 可以直接通过apt安装nghttp2, 如果是Centos或者需要自己编译, 在Github下载ngh ...
- linux内核剖析(十一)进程间通信之-共享内存Shared Memory
共享内存 共享内存是进程间通信中最简单的方式之一. 共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区. 共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程 ...
- Oracle&SQLServer中实现跨库查询
一.在SQLServer中连接另一个SQLServer库数据 在SQL中,要想在本地库中查询另一个数据库中的数据表时,可以创建一个链接服务器: EXEC master.dbo.sp_addlinked ...
- ThreadPoolExcutor 线程池 异常处理 (上篇)
前言 最近看到crossoverJie的一篇文章:一个线程罢工的诡异事件 首先感谢原作者的分享,自己获益匪浅.然后是回想到自己的一次面试经历,面试官提问了线程池中的线程出现了异常该怎样捕获?会导致什么 ...
- RDLC 根据条件改变背景颜色-多个IIF
=IIf(Fields!DATE_DIFF.Value < 5 ,"White",IIf(Fields!DATE_DIFF.Value >=5 AND Fields!D ...
- 【小工具】根据定义的白名单字段进行Bean的拷贝
背景 Bean的拷贝一直有一些类可以使用,比如Apache的org.apache.commons.beanutils.BeanUtils或者Spring的org.springframework.bea ...