win10+python3.5+pycharm配置caffe环境

win10+python3.5+pycharm配置caffe环境

  • 准备工作
  • 一、CMake
  • 二、VS2015安装
  • 三、git安装
  • 四、Ninja
  • 五、Caffe
    • (一)编译过程
      • 1、下载caffe
      • 2、编辑build_win.cmd文件
      • 3、编译
      • 4、调试
        • (1)报错
        • (2)原因分析
        • (3)修改
      • 5、结果
  • 六、使用
  • 参考

准备工作

  • 查看配置要求
    win10+python3.5+pycharm配置caffe环境_第1张图片
    参考:BVLC/caffe

一、CMake

CMake官网,注意,要求CMake版本>=3.4,我直接下的是图中这一版。
win10+python3.5+pycharm配置caffe环境_第2张图片
下载之后解压,将bin文件夹路径添加到环境变量path中【win10设置环境变量】
win10+python3.5+pycharm配置caffe环境_第3张图片
win10+python3.5+pycharm配置caffe环境_第4张图片

二、VS2015安装

我的电脑中安装了两个版本的Python【2.7和3.5】,所以,根据配置要求,我需要安装vs2015。
win10+python3.5+pycharm配置caffe环境_第5张图片

  • 版本选择【官网:Visual Studio】
    win10+python3.5+pycharm配置caffe环境_第6张图片
  • 安装教程【VS2015社区版安装教程】
    注:由于在之后进行caffe编译时,需要使用Windows 10 SDK【之前没安装好编译一直出错,折腾了好久】,所以在【选择功能】这一步将Windows 10 SDK相关的功能也勾选上了。
    win10+python3.5+pycharm配置caffe环境_第7张图片

三、git安装

  • git官网:https://git-scm.com/downloads
  • Windows10下安装Git

四、Ninja

  • 下载
    新建一个文件夹,用于存放Ninja,进入该文件夹,在空白处点击右键,选择【git bash here】,在控制台输入如下下载命令,下载Ninja。
    win10+python3.5+pycharm配置caffe环境_第8张图片
git clone git://github.com/ninja-build/ninja.git && cd ninja

win10+python3.5+pycharm配置caffe环境_第9张图片

  • 编译
    由于我下载的是简体中文版,所以运行的是【VS2015 x64 本机工具命令提示符】(以管理员身份运行)
    win10+python3.5+pycharm配置caffe环境_第10张图片
    进入Ninja所在文件夹目录,运行如下命令(由于我安装了两个版本的Python,并对其进行了重命名,所以使用的命令是python35):
python ./configure.py --bootstrap

win10+python3.5+pycharm配置caffe环境_第11张图片

  • 将Ninja路径添加至环境变量中
    编译后会生成如下文件:
    win10+python3.5+pycharm配置caffe环境_第12张图片
    win10+python3.5+pycharm配置caffe环境_第13张图片

五、Caffe

(一)编译过程

1、下载caffe

进入git bash【同ninja下载方式】,输入下列命令:

git clone https://github.com/BVLC/caffe.git 
  • 切换分支
    由于我使用的是Win10系统,所以需要切换到windows分支上,命令如下【先进入caffe包内,再切换分支】:
cd caffe
git checkout windows

win10+python3.5+pycharm配置caffe环境_第14张图片

2、编辑build_win.cmd文件

文件:caffe\scripts\build_win.cmd
win10+python3.5+pycharm配置caffe环境_第15张图片

3、编译

scripts\build_win.cmd

win10+python3.5+pycharm配置caffe环境_第16张图片

4、调试

(1)报错

找不到合适的python解释器
Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version “2.7”)

  • 将PYTHON_VERSION修改为3,编译过程出错,提示找不到合适的python解释器
    【注】我将python2.7文件夹移动了,所以在编译过程中找不到python2.7的编译器
    win10+python3.5+pycharm配置caffe环境_第17张图片
    错误如下:
    win10+python3.5+pycharm配置caffe环境_第18张图片

(2)原因分析

查看相应文件,定位错误
本次出错涉及两个相关文件:

  • cmake/WindowsDownloadPrebuiltDependencies.cmake(出错点:第41行)
    win10+python3.5+pycharm配置caffe环境_第19张图片
  • CMakeLists.txt(出错点:第77行)
    在这里插入图片描述

我们可以看到在cmake/WindowsDownloadPrebuiltDependencies.cmake的message语句本该输出相应的python解释器版本,但在输出的结果中却未能成功显示,说明未能成功给PYTHON_VERSION_MAJOR和PYTHON_VERSION_MINOR这两个变量赋值
在这里插入图片描述
而在cmake/WindowsDownloadPrebuiltDependencies.cmake负责赋值的语句是:
win10+python3.5+pycharm配置caffe环境_第20张图片
这里涉及一个变量python_version,这个变量是从CMakeLists.txt中传递过来的,我们对上述代码做如下修改,重新编译caffe,查看一下该变量的值:
win10+python3.5+pycharm配置caffe环境_第21张图片
输出结果:
win10+python3.5+pycharm配置caffe环境_第22张图片可以看到变量python_version的值为2,所以需要找到相应的python2.7解释器,但由于我将该文件夹移动了,代码根据环境变量path中的相应路径找不到python2.7的可执行文件,故报错。
由于该变量是从文件CMakeLists.txt中传递过来的,我们在该文件中查找该变量,找到了两处,如下所示:
win10+python3.5+pycharm配置caffe环境_第23张图片
win10+python3.5+pycharm配置caffe环境_第24张图片
分析
由上图可知,出错原因在于【CMakeLists.txt】中的【set(python_version “2” CACHE STRING “Specify which Python version to use”)】将python_version设置为了2,所以我们在【build_win.cmd】中设置的PYTHON_VERSION=3被修改为了2,因此代码执行时,会一直在计算机中查找python2.7解释器。

(3)修改

将【CMakeLists.txt】中的【set(python_version “2” CACHE STRING “Specify which Python version to use”)】的python_version修改为3,重新编译caffe,成功运行:
在这里插入图片描述
【注】每次重新编译caffe之前,需要将build文件夹删除,重新加载scripts中的build_win.cmd,否则会一直提示同一个错误。

5、结果

  • 顺利完成caffe编译过程
    win10+python3.5+pycharm配置caffe环境_第25张图片
  • 编译好的caffe python接口有以下内容
    win10+python3.5+pycharm配置caffe环境_第26张图片

六、使用

  • 拷贝
    将编译好的caffe包拷贝至python3.5安装路径的site-packages中,即将【caffe->python】文件夹下的【caffe】文件夹拷贝至【python3->Lib->site-packages】中
  • 使用
    win10+python3.5+pycharm配置caffe环境_第27张图片

参考

  • BVLC/caffe
  • CMake官网
  • win10设置环境变量
  • Visual Studio
  • git官网
  • Windows10下安装Git
  • 配置(二)—— win10 x64环境下配置caffe(包含python3.5接口)

你可能感兴趣的:(环境搭建)