zoukankan      html  css  js  c++  java
  • 实践详细篇-Windows下使用VS2015编译安装Caffe环境(CPU ONLY)

    学习深度学习背景

    最近在做一款抢票软件,由于12306经常检测账号状态,抢票抢着抢着就需要重新登录了,然后登录是需要验证码的。所以我最开始是想到了使用java基于感知哈希算法pHash做相似度匹配识别,结果测试发现精确度低的可怜。这里简单的说下逻辑。12306验证码是由8张小图片生成拼接在一起的。每次请求都是在服务器后台进行随机抽取图片制作验证码。而每一张小图的尺寸大小都是相同的。将图片使用java切割后生成8张小图。在进行pHash算法匹配图片相似度。结果识别度非常低了,就没必要说继续做往下的逻辑,比如训练标签。做匹配分类图片等等。所以我就想到了现在的深度学习中的图像识别分类,由于零基础接触,安装前我也是借阅了很多相关的文章以及PDF。历经几天的学习以及安装,皇天不负有心人一路磕磕碰碰总算是把caffe安装好,所以这篇文章比较适合刚接触的新人。授人以鱼不如授人以渔 编译好的caffe我就不发了。 我总结这篇教程只是为了让哪些和我一样刚接触caffe的朋友能顺利的安装好这个NB的东西。

    一:环境准备

    安装前言:该文章适合新人阅读,所以安装步骤会有点啰嗦,其次就是我们这里使用的是CPU来训练,所以是不用安装​Cuda和CuDNN的。

    1、安装git

    由于这里记录的是使用Windows系统安装,但是多数的操作还是需要使用linux命令执行。所以为了便于执行linux命令需要先git。

    保持默认选项点击next,由于我是个人使用,所以选择第二项:Use Git from the Windows Command Prompt 接着继续默认选项走。

    安装完成后记得检测是否可用,确保万一,可能会出现部分电脑出现环境变量未自动配置好。

    如未出现配置好环境变量请自行配置:

    在系统变量中找到Path并在后面添加:      C:Program FilesGitcmd;

    2、安装Visual Studio 2015(以下简称VS2015)

    下载地址+永久注册码

    3、安装CMake &版本>=3.4

    3.1 下载地址Cmake( 3.11.1版本)

    下载地址:https://download.csdn.net/download/u014714937/10375108 或 https://cmake.org/download/

    下载完成后解压出来:

    3.2 配置环境变量 

    同样在系统变量中找到Path并在其后追加你的cmake解压出来的路径,我的电脑路径是> D:DeepLearningcmake-3.11.1-win64-x64in

    注意:如在git环境变量后并没有用   ;  符号结尾记得手动在cmake追加前添加 ;

     3.3测试cmake

    打开CDM>输入cmake -version 如出现版本信息则表示环境变量配置成功

    C:UsersAdministrator>cmake -version
    cmake version 3.11.1
    
    CMake suite maintained and supported by Kitware (kitware.com/cmake).
    

    4、安装Python

    4.1 下载python

    下载地址: https://download.csdn.net/download/u014714937/10375211

    4.2 安装python

    安时候记得勾选"Add Python 3.6to PATH"表示对python环境变量的配置 如果没有特别的需求话建议使用默认安装:Install Now即可。

    正常的话一般一分钟左右就安装好了

    4.3测试python

    4.4 安装python其他相关模块

    4.4.1 安装 Anaconda

    下载地址:https://www.anaconda.com/download/

    Python 3.6 的下载Python 3.6 version版本,Python 2.7 的下载Python 2.7 version版本。

    安装时选择用户,如没有特定需求建议所有用户(All Users),选择完路径没有特定需求一直下一步即可开始安装。文件较大,解压出来2个多G,安装过程需要耐心等待几分钟。

    安装完成后出现一个是否安装微软快捷开发包。Install Microsoft VSCode 点击进行安装,安装完成后点击Skip即可。

    4.4.2安装pip 

     下载地址:https://pypi.org/project/pip/#files

    下载完成之后,解压到一个文件夹。这里解压后可能会出现的一个文件夹“dist” 然后这个文件夹里面才有一个压缩包,如果出现这种情况就需要解压真实的这个压缩包到目录上

    解压完成后在当前目录按住Shift+鼠标右键后点击“在此处打开命令窗口”或用CMD控制台进入解压目录并输入:

    python setup.py install
    

    安装失败:

    如输入安装命令出现,这种情况的原因是因为当前目录下找不到这个执行命令,确认是否是在解压出来的PIP文件主目录下执行的

    D:DeepLearningdist>python setup.py install
    python: can't open file 'setup.py': [Errno 2] No such file or directory
    
    D:DeepLearningdist>

    安装完成:

      

    检测安装:

    打开CDM输入pip list 如出现版本信息则表示安装成功

    D:DeepLearningdist>pip list
    Package    Version
    ---------- -------
    pip        10.0.1
    setuptools 28.8.0

    4.4.3 安装six : pip install six

    D:DeepLearningdist>pip install six
    Collecting six
      Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa
    78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
    Installing collected packages: six
    Successfully installed six-1.11.0

    4.4.4安装yaml: pip install pyyaml

    D:DeepLearningdist>pip install pyyaml
    Collecting pyyaml
      Downloading https://files.pythonhosted.org/packages/4a/85/db5a2df477072b2902b0
    eb892feb37d88ac635d36245a72a6a69b23b383a/PyYAML-3.12.tar.gz (253kB)
        40% |█████████████                   | 102kB 195kB/s eta 0:00:0
        44% |██████████████▎                 | 112kB 286kB/s eta 0:00
        48% |███████████████▌                | 122kB 276kB/s eta 0:0
        52% |████████████████▉               | 133kB 273kB/s eta 0:
        56% |██████████████████▏             | 143kB 421kB/s eta
        60% |███████████████████▍            | 153kB 354kB/s eta
        64% |████████████████████▊           | 163kB 345kB/s et
        68% |██████████████████████          | 174kB 382kB/s e
        72% |███████████████████████▎        | 184kB 530kB/s
        76% |████████████████████████▋       | 194kB 536kB/
        80% |██████████████████████████      | 204kB 544kB
        84% |███████████████████████████▏    | 215kB 522
        89% |████████████████████████████▌   | 225kB 61
        93% |█████████████████████████████▉  | 235kB 7
        97% |███████████████████████████████ | 245kB
        100% |████████████████████████████████| 256k
    B 1.6MB/s
    Installing collected packages: pyyaml
      Running setup.py install for pyyaml ... done
    Successfully installed pyyaml-3.12
    

      

    4.4.5 安装numpy: pip install numpy

     安装过程可能会出现以下情况:

    THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have u
    pdated the package versions, please update the hashes. Otherwise, examine the pa
    ckage contents carefully; someone may have tampered with them.
        numpy from https://files.pythonhosted.org/packages/30/70/cd94a1655d082b8f024
    b21af1eb13dd0f3035ffe78ff43d4ff9bb97baa5f/numpy-1.14.2-cp36-none-win_amd64.whl#s
    ha256=6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a840a103888:
            Expected sha256 6be6b0ca705321c178c9858e5ad5611af664bbdfae1df1541f938a84
    0a103888
                 Got        6e3df481acb4ee8249957a82771e7a23ab89368e7914bb131c368e83
    b976f270
    

    主要原因:因为网速问题导致的,导致下载的文件不完全出现不匹配的文件MD5

    解决方法:重新执行该命令下载文件并安装,多试几次就好了。

     安装完成:

    Installing collected packages: numpy
    Successfully installed numpy-1.14.2
    

    以上所有事情准备好了就可以开干了。

    5、下载caffe并编译

    5.1 下载caffe

    小建议:我们这里使用的是caffe官网提供的版本,部分朋友使用的是微软提供的windows版本 .如使用的是微软提供的windows版本好像是在caffe根目录下有一个windows文件夹,文件夹内容就是已经创建好caffe相关VS文件的,

    所以可能在安装,使用过程上有差异,建议是使用自己编译安装的版本。因为使用已经创建安装好的caffe文件可能因为环境不同遇到某种未知问题。例如下载的caffe里面创建好的VS文件是VS2013创建的并平台版本(SKD)和本机安装的有出入的话 反而会花更多的时间去调整配置。 

    使用git命令下载 git clone https://github.com/BVLC/caffe.git 也可以手动下载并解压出来

    $ git clone https://github.com/BVLC/caffe.git
    Cloning into 'caffe'...
    remote: Counting objects: 54253, done.
    remote: Total 54253 (delta 0), reused 0 (delta 0), pack-reused 54253
    Receiving objects: 100% (54253/54253), 62.60 MiB | 359.00 KiB/s, done.
    Resolving deltas: 100% (36633/36633), done.
    
    Administrator@STI5X9B683AVXOY MINGW64 /d/DeepLearning/caffe
    $
    

    初始目录结构如下:

    5.2 修改配置并执行创建caffe文件(这一步很重要)

    通过caffe根目录找到并进入scripts文件夹后找到build_win.cmd并进行编辑。

    主要修改部分语句是从第7行~31行之间 。70~99行之间,具体修改请通过下面步骤决定。

    修改7~31行的if语句(if里面修改项描述同修改70~99行之间代码逻辑):

    修改70~99行之间

     对比可以发现 if和else里面的代码大同小异,但是却少了后面设置对应python中的Anaconda版本路径这几行代码。默认文件是没有这几行代码的,我们需要手动复制if里面修改玩的代码至else代码中,修改如下:

     

    编辑主要修改的项是:

    1、修改为CPU计算训练  CPU_ONLY=1

    2、修改对应的VS版本生成代码 MSVC_VERSION=14     // 2013的VS版本则修改为12  2015的VS版本则修改为14

    3、修改编译方式,使用VS编译 不使用NinJa编译   WITH_NINJA=0    //这里一定要设为0。除非你想用ninja编译器来进行编译。 

    4、修改对应的python版本 PYTHON_VERSION=3    //2.7的python版本要修改为2  如果是3.5版本的python修改为3 

    5、修改python开发对应的Anaconda版本     //如第三项修改 PYTHON_VERSION 为3 的话将按照如下修改 安装的是python2.7的版本 那将修改EQU 2的记录

    if !PYTHON_VERSION! EQU 3 (
            set CONDA_ROOT=Anaconda3对应安装的目录地址
        )

    注:以上修改带有//描述的则需要通过计算机环境决定。

     5.3 进行创建caffe可执行的VS文件

    当以上内容都修改完成后,我们来运行build_win.cmd开始来创建VS执行文件。就是用于编译的caffe文件。在caffe根目录下的scripts目录中Shift+鼠标右键打开“在此处打开命令窗口” 然后输入start build_win.cmd。

    第一次开车-(翻车了):

    D:DeepLearningcaffecaffescripts>start build_win.cmd
    

      执行后貌似没有成功。

    '"D:VisualStudioCommon7Tools....VCvcvarsall.bat"' 不是内部或外部命令,也
    不是可运行的程序
    或批处理文件。
    CMake Error at CMakeLists.txt:18 (project):
      Failed to run MSBuild command:.......此处省略一万字

    出现了异常,什么错误呢。又是一个皇天不负有心人啊,经过百般的测试发现是因为VS安装环境的问题。像我之前安装这个VS2015的时候因为不用开发C++相关的内容,所以我在安装的时候选择了自定义安装并没有勾选C++相关的编译器以及“内裤”。

     

    所以导致在编译代码的时候找不到C++相关的命令。找到问题了如何解决呢?方法很简单,重新安装VS开发工具即可。

    不不不,别急,还有一种方案。可能你不知 VS安装工具就是这么强大,不用卸载重新安装,它可以像打补丁一样,再重新打开安装程序然后选择你没有安装的功能进行安装即可。将编程语言中的Visual C++全部勾选上在点击下一步安装即可,一般安装这几个项的话半个小时左右(因电脑性能决定)。

     万事俱备只欠东风了,安装好C++相关组件后我们再次进行执行start build_win.cmd命令(注意:每次执行build_win.cmd 命令前记得清空build_win.cmd文件目录下的build文件夹的内容).........

    第二次开车-(翻车了):

    系统找不到指定的驱动器。
    系统找不到指定的驱动器。
    此处省略一万字.......============================================================
    -- The C compiler identification is MSVC 19.0.24215.1
    -- The CXX compiler identification is MSVC 19.0.24215.1
    -- Check for working C compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe
    -- Check for working C compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe -- work
    s
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe
    -- Check for working CXX compiler: D:/VisualStudio/VC/bin/x86_amd64/cl.exe -- wo
    rks
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found PythonInterp: D:/DeepLearning/Anaconda3/python.exe (found suitable vers
    ion "3.6.4", minimum required is "2.7")
    CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message):
      Could not find url for MSVC version = 1900 and Python version = 3.6.
    Call Stack (most recent call first):
      CMakeLists.txt:77 (include)
    
    
    -- Configuring incomplete, errors occurred!
    See also "D:/DeepLearning/caffe/caffe/scripts/build/CMakeFiles/CMakeOutput.log".
    
    ERROR: Configure failed
    
    D:DeepLearningcaffecaffescripts>

    貌似又失败了,异常描述好像是因为python版本不一致导致的。于是乎我又安装了Anaconda2版本并进行修改了文件build_win.cmd文件

     

    将对应的python版本匹配对应版本的Anaconda

     :: Set python 2.7 with conda as the default python
        if !PYTHON_VERSION! EQU 2 (
            set CONDA_ROOT=D:DeepLearningAnaconda2 
        )
        :: Set python 3.5 with conda as the default python
        if !PYTHON_VERSION! EQU 3 (
            set CONDA_ROOT=D:DeepLearningAnaconda3
        )
    

      第三次开车-(翻车了):

    -- Found PythonInterp: D:/DeepLearning/Anaconda3/python.exe (found suitable vers
    ion "3.6.4", minimum required is "2.7")
    CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message):
      Could not find url for MSVC version = 1900 and Python version = 3.6.
    Call Stack (most recent call first):
    

      当我第三次翻车后我就在思考了,我是不是不适合这个牛逼的东西,但是没办法啊,既然上了高速了又岂能随随便便下高速。于是乎我又进行了修改,将build_win.cmd文件中的判断python版本然后匹配对应Anaconda 都修改了为匹配Anaconda2。于是乎....

          第四次开车-(飞起来了):

    又是一个皇天不负有心人啊。成功了。

    先看修改后的配置文件(记得if和else里面都要修改),至于为啥是这样呢 我也母鸡。。。可能是我的配置或者环境导致的。按道理我配置的是python3.6的 应该Anaconda配置也要是3的版本才对,但是我引用Anaconda3就是不通过,所以只能改为Anaconda2让它通过先了,其次就是我在翻阅资料的时候看见有大佬说 如果说这里安装了Anaconda2/3都没法成功时还需要安装Miniconda2,原文意思是说后面引用都是Miniconda需要安装这个。但是我这里本机测试是正常的,所以我是没有安装了,如果需要安装的话通过这里进行下载安装,安装界面和安装Anaconda时选步是一样的。下载地址:https://conda.io/miniconda.html :

        :: Set python 2.7 with conda as the default python
        if !PYTHON_VERSION! EQU 2 (
            set CONDA_ROOT=D:DeepLearningAnaconda2
        )
        :: Set python 3.5 with conda as the default python
        if !PYTHON_VERSION! EQU 3 (
            set CONDA_ROOT=D:DeepLearningAnaconda2
        )
    

      

    然后你会发现控制台正在默默的下载一个文件,下载的内容就是生成caffe项目时所需的依赖项。下载完成后自动生成Visual Studio对应版本的的sln文件。

    如libraries_v140_x64_py27_1.1.0.tar.bz2文件出现下载失败导致编译失败,可通过手动下载该文件然后丢入到待解压目录中并再重新执行build_win文件。

    本文提供下载地址 or 官方下载地址。下载完成后复制该压缩包并黏贴到 “C:UsersAdministrator.caffedependenciesdownload”中,如用户名有差异需要自行查找 比如“C:UsersXXXXX.caffedependenciesdownload”。

    然后打开caffe根目录cmakeWindowsDownloadPrebuiltDependencies.cmake这个文件,把下载文件的部分代码注释掉:

    并且打开 caffe根目录scriptsdownload_prebuilt_dependencies.py文件 注释掉下载代码:

    如网络状态较好,未出行以上情况我们耐心的等待即可。........当依赖下载完成后就开始生成项目了。

    经过耐心等待几分钟后至于生成完成了。

    出现警告不用理会,我们直接进入生成的文件夹进行打开caffe项目然后编译。就是build_win.cmd文件目录中的build文件夹。

    进入这个文件夹后,里面结构大致这样,版本不同,生成的文件有细微差异。然后直接双击  Caffe.sln文件会自动使用VS打开的。

     5.4 进行编译caffe

    我翻译资料的时候发现很多大佬说在生成解决方案的时候使用 Release 方式。然后平台版本调整为X64。使用Release和Debug的区别我就不在这里说了。但是这里编译模式呢 不会直接影响对caffe的使用,所以Debug也是可以的。

    等待VS工具加载完项目后我们点击顶部菜单栏的 生成>生成解决方案 或通过右侧项目栏也是可以的。结果是一样的。如编译正常通过的话 控制台打印信息如下:

    此处省略一万零一字
    41>  -- Creating hardlink for opencv_imgcodecs310d.dll in D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
    41>  -- Failed to create hardlink D:/DeepLearning/caffe/caffe/scripts/build/test/Debug/opencv_imgcodecs310d.dll. Copying instead.
    41>  -- Copying opencv_imgcodecs310d.dll to D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
    41>  -- Creating hardlink for opencv_imgproc310d.dll in D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
    41>  -- Failed to create hardlink D:/DeepLearning/caffe/caffe/scripts/build/test/Debug/opencv_imgproc310d.dll. Copying instead.
    41>  -- Copying opencv_imgproc310d.dll to D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
    41>  -- Creating hardlink for python27.dll in D:/DeepLearning/caffe/caffe/scripts/build/test/Debug
    45>------ 已跳过生成: 项目: runtest, 配置: Debug x64 ------
    45>没有为此解决方案配置选中要生成的项目 
    ========== 生成: 成功 40 个,失败 0 个,最新 0 个,跳过 5 个 ==========
    

     

      

  • 相关阅读:
    Java中的日期(Calendar、Date)
    java上传、下载、删除ftp文件
    JAVA中使用FTPClient实现文件上传下载
    使用JSch实现SFTP文件传输
    linux 如何显示一个文件的某几行(中间几行)
    java常用流处理工具StreamTool 常见的InputStream流转字符串, 转字节数组等等
    String与InputStream互转的几种方法
    day 13
    day 12
    day11 大纲
  • 原文地址:https://www.cnblogs.com/david97/p/8949713.html
Copyright © 2011-2022 走看看