caffe是由著名软件公司GitHub基于C++开发的一款编程软件,支持python和matlaB接口,可以快速的进行框架的构建,很适合学习、研究、创建公司原型和大规模行业应用等。另外小编还带来了详细的安装配置教程,需要的朋友快快下载吧!
基本介绍
Caffe的核心程序是用C++实现的,并提供了Python和Matlab的接口,也就是说你可以在python和matlab中调用caffe训练好的模型。并且caffe支持cpu和gpu的无缝切换,这一点在现在的大数据时代显得尤为重要。目前搞深度学习的人大部分都是在gpu上跑程序的,一个ImageNet数据集有上千万张图片,加上深度学习使用的模型层数又比较多,跑一个程序所花费的时间都是以天为单位计算的,若在cpu上跑,可能需要一周的时间,但在gpu上可能只需两三天就好了。
但是对于我们这些正常人来说,如果让我们在gpu上进行编程,恐怕都要傻眼了,这时caffe就提供了一个便捷的方式,可以让你忽略cpu和gpu的差别,仅仅一个参数就可以让你的模型在cpu和gpu之间自由切换,大大提升了各位童鞋‘发论文’的速度。(还有一个python工具包也可以让你方便的在cpu和gpu之间进行切换,那就是Theano了,本人最初正是因为只有python工具包才有支持gpu编程的功能,所以才弃matlab从python的)
软件特色:
Caffe的设计考虑了以下几个方面:
1、表示:模型和优化以纯文本的模式定义,而不是以代码模式;
2、速度:运算速度对于最先进模型和海量数据是至关重要的;
3、模块化:新的任务和配置要求框架具有灵活性和扩展性;
4、开放性:科研和应用过程需要公共的代码、可参考的模型和可再现性;
5、社区:通过共同讨论和具体协议共同开发这个项目,学术研究、起步阶段的原型和工业应用可以共享各自的力量。
软件功能
1、数据存储:
Caffe生成的数据分为2种格式:Lmdb和Leveldb
它们都是键/值对嵌入式数据库管理系统编程库。
虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允许多种训练模型同时读取同一组数据集。
因此lmdb取代了leveldb成为Caffe默认的数据集生成格式。(这点得吐槽下了,没空的自行跳过此段。之前用的是实验室服务器上安装的老版本的caffe,在运行MNIST和CIFAR-10的例子时,caffe官网教程上的还是生成*_leveldb格式的数据,但当我几天后跑ImageNet实例时,提示我找不到$CAFFE_ROOT/build/tools/目录下的caffe文件,后来还是通过和网友的tools目录下的文件对比才发现,编译后生成的老版本的caffe比新版的少了一堆东西,只好重新编译新版本,编译过程中发现缺少lmdb,查资料才发现,caffe已经用lmdb取代了leveldb,而返回去看之前的MNIST和CIFAR-10实例教程,发现教程上也已经将leveldb的部分改成lmdb了。唉~,这更新速度也忒快了吧,还是提醒各位及时升级,有问题多看几遍官网教程)
2、数据传输
当数据在前向后向传输时,caffe采用blobs的形式对数据进行传递或处理,它是该框架采用的标准的存储接口。下面是百度百科上对blob的一段解释:BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库,caffe中的lmdb或leveldb)
在caffe中,blob是一个四位数组,不过在不同的场合,各维表示的意义不同
对于数据:Number*Channel*Height*Width
对于卷积权重:Output*Input*Height*Width
对于卷积偏置:Output*1*1*1
Caffe安装配置教程
第一步
在本站下载caffe,复制Windows下CommonSettings.props.example,后缀改为CommonSettings.props,如下:
第二步
由于我电脑无GPU,所以修改复制过来的CommonSettings.props配置文件:
第三步
双击Windows下的caffe.sln,在VS2013中生成解决方案:
【注】里面的predict 是我自己写的测试项目,其它的才是官网自动生成的哈,官网自带的总共有16个项目,请注意核对~~~ :->
然后会弹出一个窗口,Nuget所需要的第三方库,可能会未响应,慢慢等吧。如果出现无法连接的那个问题,说明IP ping不过去,直接把问题复制到网上搜,有解决方法。
第四步
当下载完毕第三方库,你的caffe-Windows并列文件夹下会有一个第三方库的文件夹
【注】caffe-windows和caffe-master对caffe.cpp编译以后下载的第三方库都是十六个文件夹。

最好核对一下文件,免得没下载完就被你关掉了。
为了方便大家解决这个问题,我直接压缩了一个,下载解压放到与caffe-master并列文件夹即可:链接:http://pan.baidu.com/s/1nuIJMp7 密码:1zgo
这个时候,当下载完毕,VS仍在继续执行生成任务,最终可能失败,原因下面会提示说无法打开libcaffe.lib之类的error。解决方法是直接对libcaffe重新生成,或者直接生成一次
当这个文件生成成功以后,重复一下上一步,对所有文件再重新生成一下,这时候应该不会出现libcaffe.lib无法打开的错误了。
【PS】按照这个流程编译下来很少会出现无法解析外部符号问题,出现这种问题有很大可能是静态库没连接好,但是微软的所有库是自动下载的,除非没下载全。还有关于一些.h 头文件未找到,请自行核对此头文件的位置,然后再配置文件中随便找个IncludePath(此includePath必须在编译时候被使用),将路径加进去即可,同时也必须注意是否需要相关的lib文件。不过帮忙配置挺多电脑以后,基本没遇到太多问题。
第五步
设置一下运行项,解决方案'caffe'->属性
或者下面直接单启动项目是caffe也行,不过最好改一下,原因相信玩过VS的都清楚,如果是单启动项目,那么在你重新编译工程的时候,只会运行次单启动项目,其它项目不会运行,这就是为什么很多人编译以后发现Release或者Debug文件夹下只有caffe.exe而没有conver_imageset.exe等可执行文件的原因。
第六步
运行caffe.cpp,直接双击打开caffe.cpp,然后ctrl+f5直接编译,出现如下命令窗口说明编译成功
【PS】这个其实告诉你了如何调用caffe.exe去训练你的模型
Caffe编译教程
1) 启动CMake(cmake-gui)工具
2) 设置source code路径和build路径
3) 单击Configure按钮,并选择并选择Visual Studio 12 2013 Win64编译器编译器
4) 更新完成后,勾选中BUILD_SHARED_LIBS和BUILD_STATIC_LIBS
5) 单击Generate按钮,生成VS工程
6) 打开刚刚生成的VS工程,build其中的ALL_BUILD工程,注意选择x64模式,并分别生成Debug和Release下的库
7) 编译成功后,在工程路径下会生成bin、include、lib三个文件夹
CAFFE系统配置:
1、硬件配置
参数规格
CPU 架构x86_64
系统内存8-32GB
CPU1
GPU 型号NVIDIA TITAN X
GPU1-2
2、服务器
参数规格
CPU 架构x86_64
系统内存32 GB
每节点的 CPU 数目1-2
GPU 型号
Tesla M40
Tesla P100
每节点的 GPU 数目1-4
3、软件配置
参数版本
操作系统Ubuntu 14.04
GPU 驱动程序367.27 或更新版本
CUDA 工具包8.0
cuDNN 库v5.1
小编为大家提供的是Caffe Windows官方地址,请点击官方下载!