本教程为如何在windows上编译paddle深度学习库
1.准备工作
- vs2015(update3)及以上
- python3.5及以上
- cmake-gui
- 我们所向往的
- 过一遍官方文档
2.下载源码
首先开启 我们所向往的,体验github极速下载速度
git clone https://github/PaddlePaddle/Paddle.git
然后切换到指定版本进行开发,因为比较稳定,移植时也方便,也可以直接使用master进行开发
# 查看所有版本,空格键浏览更多
git tag
# ...
# v1.7.2
# v1.8.0
# ...
# v1.8.4
# v1.8.5
# v2.0.0
# ...
# v2.0.0-rc0
# v2.0.0-rc1 # 本教程使用此版本
# v2.0.1
git checkout v2.0.0-rc1
# Updating files: 100% (2720/2720), done.
# Note: switching to 'v2.0.0-rc1'.
# ...
# HEAD is now at d82d59e6e7 [cherry-pick] Fix amp support fleet(#29505)
3.准备python环境
如果电脑没有python3.5以上的话需要安装一个,
然后安装依赖包
pip install numpy protobuf wheel
如果你电脑上有多个python,那么你要明确知道你想用那个路径下的python来编译。
4.开始编译
打开cmd,先设置pytohn相关环境变量,然后接着打开cmake-gui
# cmd
# 假设我想用的python路径为 C:\Python36
# 指定python的lib路径
set PYTHON_LIBRARY=C:/Python36/libs/python36.lib
# 指定python的头文件路径
set PYTHON_INCLUDE_DIRS=C:/Python36/include
# 将python路径加到环境变量
set PATH=C:/Python36;%PATH%
# 启动cmake-gui
cmake-gui
- 然后打开
cmake-gui
,输入源码路径,和构建路径,
- 然后点击
Configure
进行配置,提示目录不存在,选择创建
- 然后选择本机对应的vs版本,和需要生成的平台(这步很关键),然后点击
Finish
- 最后开始配置,需要改几个关键参数即可
搜索install_prefix
出来一行,输入安装路径,E:/work/lib/Paddle/install
代表我想安装的路径
- 搜索
ON_INFER
出来一行,勾上代表需要编译推理库
- 搜索
WITH_GPU
出来一行,勾上代表需要编译GPU,本教程编译CPU版本 - 搜索
CMAKE_BUILD_TYPE
出来一行,默认代表编译Release - 搜索
WITH_MKL
出来一行,默认代表使用MKL库来加速推理 - 搜索
MSVC_STATIC_CRT
出来一行,默认代表使用MT
(意思是静态链接,动态链接是MD)方式来编译,这是官方介绍,这个建议不要改,需要改动很多地方才能顺利编译
一切参数配置完后,再次点击Configure
,再点击Generate
,项目文件生成完成后
然后点击Open Project
,然后熟悉的vs就出来了,等于你手动点击了build/paddle.sln
项目启动文件,
接着选择平台为 x64,配置为 Release,开始编译
编译基本没有什么问题
如果编译过程中出现如下类似错误,表示当前网络无法直接从github克隆代码
fatal: unable to access 'https://github/google/glog.git/
因为paddle依赖了别的github上的仓库,因此会联网下载,而此时就需要 我们所向往的来加速下载了,不然大概率会编译失败,
因此打开 我们所向往的后,vs还不能自动使用 我们所向往的的代理工具,需要手动设置一下,
本篇文章使用的是vs 2015,对应路径为C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe.config
将
<system>
<settings>
<ipv6 enabled="true"/>
</settings>
</system>
改为
<system>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy proxyaddress="http://127.0.0.1:4780"/>
</defaultProxy>
<settings>
<ipv6 enabled="true"/>
<servicePointManager expect100Continue="false" />
</settings>
</system>
即使用本地代理,最后重启vs生效,最后开始编译
Git报错:OpenSSL SSL_connect: Connection was reset in connection to github:443
一般是由代理导致的
解决方式
找到代理的端口,如1196
在git中配置代理
git config --global http.proxy 127.0.0.1:1196 # 为全局的 git 项目都设置代理
git config --local http.proxy 127.0.0.1:1196 # 为某个 git 项目单独设置代理
更多推荐
[paddle][基础篇-1]-windows下源码编译paddle
发布评论