学习深度学习背景

最近在做一款抢票软件,由于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 Files\Git\cmd;

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:\DeepLearning\cmake-3.11.1-win64-x64\bin

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

3.3测试cmake

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

C:\Users\Administrator>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:\DeepLearning\dist>python setup.py install
python: can't open file 'setup.py': [Errno 2] No such file or directory D:\DeepLearning\dist>

安装完成:

  

检测安装:

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

D:\DeepLearning\dist>pip list
Package Version
---------- -------
pip 10.0.1
setuptools 28.8.0

4.4.3 安装six : pip install six

D:\DeepLearning\dist>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:\DeepLearning\dist>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:\DeepLearning\caffe\caffe\scripts>start build_win.cmd

  执行后貌似没有成功。

'"D:\VisualStudio\Common7\Tools\..\..\VC\vcvarsall.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:\DeepLearning\caffe\caffe\scripts>

貌似又失败了,异常描述好像是因为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:\DeepLearning\Anaconda2
)
:: Set python 3.5 with conda as the default python
if !PYTHON_VERSION! EQU 3 (
set CONDA_ROOT=D:\DeepLearning\Anaconda3
)

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

-- 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:\DeepLearning\Anaconda2
)
:: Set python 3.5 with conda as the default python
if !PYTHON_VERSION! EQU 3 (
set CONDA_ROOT=D:\DeepLearning\Anaconda2
)

  

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

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

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

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

并且打开 caffe根目录\scripts\download_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 个 ==========

 

  

实践详细篇-Windows下使用VS2015编译安装Caffe环境(CPU ONLY)的更多相关文章

  1. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  2. 实践详细篇-Windows下使用Caffe训练自己的Caffemodel数据集并进行图像分类

    三:使用Caffe训练Caffemodel并进行图像分类 上一篇记录的是如何使用别人训练好的MNIST数据做训练测试.上手操作一边后大致了解了配置文件属性.这一篇记录如何使用自己准备的图片素材做图像分 ...

  3. [转]Windows下使用VS2015编译openssl库

    转自:http://blog.csdn.net/alger_magic/article/details/52584171 目标:编译vs环境下openssl库 工具: 1. 编译环境win10+vs2 ...

  4. windows下使用VS2015编译V8 JavaScript引擎(v5.5 - 2016/09)

    今天心血来潮, 下载了 v8,,然后就想着用vs编译 但是大家都苦恼的是 v8并不直接提供 vs用的项目文件和解决方案(.sln) 于是,在网上搜来搜去, 折腾来折腾去的; 终于一点一点的尝试, 可以 ...

  5. Windows下MongoDB的下载安装、环境配置

    下载MongoDB 1.进入MongoDB官网,Products -> 选择SOFTWARE下的MongoDB Server 2.选择下载最新版 3.选择对应的版本下载 msi安装包形式安装Mo ...

  6. linux centos 7.5下 源码编译安装 lua环境

    lua 5.3.5 下载安装时发现缺少库 readline 需要添加依赖 yum search readline 看有哪些包 安装带有 devel 字样的 安装无 devel 的非开发包,通常不会自动 ...

  7. windows下用vs2010编译ffmpeg

    转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg ...

  8. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  9. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

随机推荐

  1. Docker学习笔记 - Docker的守护进程

    学习目标:  查看Docker守护进程的运行状态 启动.停止.重启Docker守护进程 Docker守护进程的启动选项 修改和查看Docker守护进程的启动选项 1.# 查看docker运行状态  方 ...

  2. spring cloud eureka显示ip

    eureka.instance.preferIpAddress=trueeureka.instance.instance-id=${spring.cloud.client.ipAddress}:${s ...

  3. Hive&SqlServerql:inner join on条件中如果两边都是空值的情况下,关联结果中会把数据给过滤掉。

    今天遇到的一个大坑,话不多少,看sql和下边的查询结果: --问题:恰好把buildingid is null的记录给过滤掉 ),buildingid ),)); ); ); ); ); ); ); ...

  4. 使用Swoole测试MySQL在特定SQL下的并发性能

    场景描述 从全文检索或者缓存中获取ID,根据ID查询数据库获取基础信息,进行页面展示 SQL:select * from table where id in(id1,id2,id3...id40) 此 ...

  5. dev gridControl 自定义绘制列头颜色

    1.添加事件CustomDrawColumnHeader private void gvw1_CustomDrawColumnHeader(object sender, DevExpress.Xtra ...

  6. PostgreSQL 常用系统自带方法

    数据库字符编码问题:    -- 查看PostgreSQL数据库服务器端编码:    show server_encoding;    -- 查看PostgreSQL客户端工具psql编码:    s ...

  7. [LeetCode] Erect the Fence 竖立栅栏

    There are some trees, where each tree is represented by (x,y) coordinate in a two-dimensional garden ...

  8. [LeetCode] Construct the Rectangle 构建矩形

    For a web developer, it is very important to know how to design a web page's size. So, given a speci ...

  9. python打包工具distutils、setuptools分析

    在上一篇博文中总结了python中导入包,安装包一条完整的线路.其中有一个有意思的知识点,安装包的方式有很多种,模块和包管理中打包,发布,安装也是值得研究的内容. python中安装包的方式有很多种: ...

  10. wifi 破解笔记

        最近小夜刚刚学习了无线WiFi的密码破解,感觉很神奇,不过以下操作都是作为学习测试的内容进行的,希望志同道合的小伙伴切不要触碰法律的红线哦!       话不多说,直接上硬菜.     实验环 ...