Caffe的各个版本简介

Tensorflow和Caffe是机器学习初学者常用的2种深度学习框架。相对于Tensorflow有简单的python pip一键安装包,Caffe的安装更考验开发者的计算机编译水平,需要自己下载源码编译。尽管caffe的配置教程网上很多,但是网上caffe的各个分支版本也很多,所以初学者在编译时总是会碰到各种奇怪的问题。本文会针对初学者常用的Windows* + Intel CPU的平台上安装配置Caffe做一个较为完整的总结。

Caffe的各个版本简介

官方版本:伯克利BVLC(Berkeley Vision And Learning Center) 版

https://github.com/BVLC/caffe
这个是Caffe的主版本,由伯克利大学维护。其他所有的Caffe版本都是由这个版本分支出去的。这个版本Caffe可以编译出Linux和Windows*版本,支持Nvidia的CUDA加速,但是对CPU的优化不好,而且有关安装和配置的文档很少。从这个版本编译Caffe,需要很强的自我学习和解决问题能力。

微软的Windows*版本

https://github.com/Microsoft/caffe 
微软自己维护的一个版本。这个版本简化了Caffe在Windows*下的步骤,自带了一个VS的Solution项目。这个版本同样支持基于CPU和CUDA的算法实现。

Intel Caffe优化版

https://github.com/intel/caffe 
Intel维护的版本,这个版本优化了Intel CPU的实现算法,同时提供对Intel Xeon CPU多核和多节点的支持。这个版本里有些算法库对Windows*支持不太好,所以这个分支编译出的Caffe主要还是运行在Linux的服务器平台上做训练工作。

Intel clCaffe 核显OpenCL优化版

https://github.com/01org/caffe 
Intel维护的另一个版本,相对于官网BVLC Caffe上的OpenCL分支,优化了基于Intel 核显GPU的OpenCL加速算法。这个版本同时支持Windows* 和Linux平台,适合在有Intel核显的CPU上做一些推理(Inference)场景的工作。

BVLC caffe的编译

安装编译所需要的软件

  • Visual Studio 2015
  • Anaconda + Python 64位版本 (Caffe官网推荐用Python 2.7或者3.5版本,如果用其他版本,编译时候会麻烦一些,我系统上用的是Python3.6版本) https://www.anaconda.com
  • cmake-3.9.3-win64-x64 https://cmake.org/
  • Git-2.14.2-64-bit https://git-scm.com/

配置Windows*的环境变量

为了避免等会CMAKE生成编译脚本的时候找不到一些依赖关系,有的没的路径都加一些,包括Cmake, Git, Ananconda以及Python的路径。

Checkout 官网Caffe的代码

运行以下代码,用git从官网caffe上下载Windows*分支。

git clone https://github.com/BVLC/caffe.git
cd caffe
git checkout windows

修改caffe源码代码里的一些编译参数

  • 修改scripts\build_win.cmd
    因为我们没有定义APPVEYOR,所以直接拉到else(大约69行)以后。
    先从APPVEYOR部分把这部分内容拷贝过来
if !PYTHON_VERSION! EQU 2 (
    set CONDA_ROOT=C:\Miniconda-x64
)
:: Set python 3.5 with conda as the default python
if !PYTHON_VERSION! EQU 3 (
    set CONDA_ROOT=C:\Miniconda35-x64
)
set PATH=!CONDA_ROOT!;!CONDA_ROOT!\Scripts;!CONDA_ROOT!\Library\bin;!PATH!

然后根据Windows*环境设置下图中红色方框的部分

1. 编译器是VS2015,设置MSVC_VERSION=14

2. 不需要NINJA来编译,设置WITH_NINJA=0

3. 没有NVDIA GPU,设置CPU_ONLY=1

4. Python版本为3.X,设置PYTHON_VERSION=3

5. 需要pyCaffe支持,设置BUILD_PYTHON=1

  • 如果Python版本不是2.7或3.5,修改
    cmake\WindowsDownloadPrebuiltDependencies.cmake
    Caffe在编译时会自动从网上下载一个依赖库caffe-builder,这个cmake文件负责根据你系统里的VS版本和python版本自动下载预编译好的caffe-builder包。目前网上只有预编译好的VS2013/2015配python2.7/3.5的caffe-builder,如果是python3.6,编译时会报找不到VS2015配python3.6的caffe-builder包。解决方法有2个办法,要么用python3.5的包,要么自己编译caffe-builder。

    对于复用Python3.5的包,可以按照下图中所示,复制DEPENDENCIES_URL_1900_35和DEPENDENCIES_SHA_1900_35 2行,同时修改35为36。

如果希望使用自己编译VS2015加python3.6的caffe-builder,除了要加入上段说到的2行修改外,还需要注释掉下图中WindowsDownloadPrebuiltDependencies.cmake的下图所示的绿色部分,这部分代码是负责从网上下载依赖包并且解压缩到本地目录的。同时要把caffe-builder编译出的libraries目录拷贝到C:\Users\[user name]\.caffe\dependencies这个目录下。(具体caffe-builder的编译,将在本文第3节详细介绍)

开始编译

在caffe的目录下输入scripts\build_win.cmd

开始编译,一切顺利的话,大约10分钟后就编译好了

验证一下编译的结果

接下来运行一下caffe项目自带的examples里的00-classification的代码来验证一下caffe是否能够正常运行

打开anaconda的命令行,进入caffe的examples目录,运行jupyter notebook

在打开的notebook中打开caffe自带的例子 00-calssification.ipynb

这是用一个训练好的Caffe模型来预测动物图片的例子,图片默认是使用Caffe项目里examples\image\cat.jpg。

一路Shift+Enter运行下去,看到第8步predicted输出

predicted class is: 281

第9步输出

output label: n02123045 tabby, tabby cat

预测结果是猫,说明caffe已经正确编译而且能运行了。

大功告成,开始你的Caffe学习之旅吧

Caffe依赖库Caffe Builder的编译

这一章主要介绍怎么编译Caffe-Builder项目

安装编译所需要的软件

编译软件的需求同2.1部分

  • Visual Studio 2015
  • Anaconda + Python 64位版本 https://www.leyou2.net/ www.anaconda.com
  • cmake-3.9.3-win64-x64 https://www.yongshiyule178.com cmake.org/
  • Git-2.14.2-64-bit https://www.baidu620.com git-scm.com/

配置Windows*的环境变量

环境变量的配置同2.2部分

下载Caffe-Builder源码

Caffe-Builder的开源项目位于 https://github.com/willyd/caffe-builder
目前最新的release为1.1版,可以从这里下载最新的release 1.1.0版的源码
https://github.com/willyd/caffe-builder/ www.leyouzaixian2.com releases

修改caffe-builder源码代码里的一些编译参数

修改主要基于2个方面:
首先在Windows*下Ninja编译系统不容易配置好,所以这里选择了Visual Studio 2015作为编译器。修改build_v140_x64.cmd,将红色部分的’Ninja’改为’Visual Studio 14 2015 Win64’

其次是这个Release 1.1.0发布有点时间了,caffe-builder很多依赖的开源项目都搬家或者版本更新了,需要做相应的修改。

1) 修改packages\protobuf\ www.huayiyul.com CmakeLists.txt
将图中所示部分protobuf包的Hash值从原来的
14a532a7538551d5def317bfca41dace
修改为
39d6a4fa549c0cce164aa3064b1492dc

2) 修改packages\hdf5\CmakeLists.txt
将图中所示部分的URL从https://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.16/src/CMkae-hdf5-1.8.16.zip 修改为 https://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.16/src/CMkae-hdf5-1.8.16.zip

编译

进到caffe-builder-1.1.0目录下,运行build_v140_x64.cmd开始编译

屏幕输出

最终编译生产的caffe依赖库文件放在build\libraries目录下,你可以将这个libraries目录拷贝到caffe所需要的目录下。

小结

本篇文章主要介绍了官方BVLC Caffe在Windows*下的编译设置过程。BVLC Caffe提供CPU和Nvidia GPU版本的实现,但是在实际学习工作中,初级开发者的电脑平台通常不会装备昂贵的Nvidia显卡,而CPU版本的Caffe因为执行效率不高,只能用来做一些小型的”玩具”实验项目。

原文地址:https://www.cnblogs.com/qwangxiao/p/9185040.html

时间: 2024-09-30 19:44:15

Caffe的各个版本简介的相关文章

STL版本简介

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 本文的参考文献为:<STL源码剖析>侯捷 (1)HP STL:所有STL的祖先版本,由C++之父Alexander Stepanov和Menge Lee共同完成,可以公开修改但必须在所有的文件中加上HP的版本生命和运用权限声明. (2)PJ STL:继承了HP STL,由P.J.Plauger开发,被微软的Visual C++采用,存放目录为\:msdev\VC98\Include能找到STL头文件,不能公开.修改.贩卖 PJ STL. (3

BingBong Beta版本简介

你好,BingBong是一款能将必应首页的今日美图下载到本地的软件. 适用平台 Windows xp.Win7 功能简介 开机自启 选择此项后,软件会随开机自启动下载美图,任务完成后静默关闭. 设置更新图片到桌面 每次下载图片完成后,将桌面背景替换成今日美图. 访问官网 打开通往作者主页的超链接. 快捷设置 你可将配置界面按下图设置,这样BingBong就会在每次开机自启时下载美图并更新到桌面背景.   问题反馈 BingBong采用爬虫技术抓取Bing静态网页获取图片网址,随着网页的更新,可能

ECMAScript各个版本简介及特性

术语 ECMAScript Sun(现在的Oracle)公司持有着"Java"和"JavaScript"的商标.这就让微软不得不把自己的JavaScript方言称之为"JScript".然后,在这门语言被标准化的时候,就必须使用一个与二者都不同的名字."ECMAScript"就这样诞生了,这个名字的来由是因为执行标准化的组织是Ecma国际.通常来说,术语"ECMAScript"和"JavaScri

【吐槽】我只想说,caffe的最新版本做的真尼玛SHI一样难看

添加个layer麻烦的要死啊!有木有! 还有,看看下面的代码! 丑不丑! if (v0_layer_connection.has_layer()) { const V0LayerParameter& v0_layer_param = v0_layer_connection.layer(); if (v0_layer_param.has_name()) { layer_param->set_name(v0_layer_param.name()); } const string& typ

sql server版本特性简介、版本介绍简介

1.SQL Server 版本简介 1.1.sql server的版本信息 年    代 版    本 大版本号 1993年 SQL Server for Windows NT 4.21 1994年 SQL Server for Windows NT 4.21a 1995年 SQL Server 6.0 1996年 SQL Server 6.5 1998年 SQL Server 7.0 7.00 2000年 SQL Server 2000 8.00 2003年 SQL Server 2000 E

【转】贾扬清:希望Caffe成为深度学习领域的Hadoop

[转:http://www.csdn.net/article/2015-07-07/2825150] 在深度学习(Deep Learning)的热潮下,Caffe作为一个高效.实用的深度学习框架受到了广泛的关注.了解Caffe研发的背景.愿景.技术特色.路线图及其开发者的理念,对于我们选择合适的工具更好地进行深度学习应用的迭代开发大有裨益.<程序员>记者近日深度对话Caffe作者贾扬清,剖析Caffe的起源.目标.差异性.现存的一些问题和改进工作,以及未来的规划. 起源故事 <程序员&g

读caffe源码(未完待续)

caffe源码阅读杂记 准备 一些参考网页 Neural Networks and Deep Learning TUTORIAL ON DEEP LEARNING FOR VISION Deep Learning Tutorial 知乎-深度学习caffe的代码怎么读 Caffe源码解析 caffe源码结构 官方代码结构doxygen 官方Caffe Tutorial 以C++源码形式配置debug&CPU版的caffe,便于阅读源码与单步调试[参考] 参考官方的文档,先了解某个模块的作用 为了

win7_64bit+VS2013+CUDA7.5+Opencv2.4.10配置Caffe环境

参考博客: 1.win7环境下CUDA7.5的安装.配置与测试(VS2010) 2.Win7_64bit + VS2013 + CUDA7.5 + Opencv2.4.10 成功配置Caffe环境 注意事项: 1.CUDA的用处:目前随着硬件技术的进步,常使用GPU(Graphics Processing Unit,图形处理器)来进行神经网络算法的训练及实现.GPU计算的基础是Nvidia的CUDA环境. 2.Caffe的主版本(caffe-master)只支持Linux,所以要下载专门的caf

计算机的组成和Linux的发行版本介绍

计算机的组成和 Linux的发行版本介绍 计算机的组成及功能 计算机的五大组成,如下; 各部分的作用; 控制单元和算数逻辑单元是CPU的两个主要组成部分 控制单元主要协调各组件与各单元间的工作 算数逻辑单元主要负责程序运算与逻辑判断 内存,DRANM(Dynamic Random Access Memory)动态随机访问内存:CPU读取的数据都是从内存读取来的. 输入单元,下指令,提供数据的输入等:如:键盘.鼠标等 输出单元,输出数据加工后的结果:如:显示器等 CPU读取的数据都是从内存中获取,