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、社区:通过共同讨论和具体协议共同开发这个项目,学术研究、起步阶段的原型和工业应用可以共享各自的力量。
拥有以上诸多优势,经过两年多的版本迭代,Caffe框架已经在学术界和工业界得到了广泛的认可。
那么是什么原因促使caffe的运行速度比其它深度学习框架的运行速度快呢?个人认为有以下几点:
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
3、其它
c++的运行效率就不用多说了,暂时这些吧,如有新内容再补充了,也欢迎大家来补充……
介绍完caffe了,接下来就该安装caffe跑跑实例看看效果了
不过先说明下,本系列caffe学习笔记中,不涉及caffe的安装部分,如有此需求请移步他处。我用的是实验室的服务器,caffe是别人装的,本人没有root权限没有实际安装过,所以安装部分就无从奉告了~
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
Caffe在更新的 NVIDIA Pascal GPU 上运行的速度最高可提高65%,并能够跨单个节点中的多个 GPU 进行扩展。如今,您训练模型的时间可以从几天缩短到几个小时。
第1步:安装 CUDA
要结合使用 Caffe 和 NVIDIA GPU,步要安装CUDA 工具包。
第2步:安装 cuDNN
安装 CUDA 工具包后,下载适用于 Linux 的cuDNN v5.1 库(请注意,您将需要注册加速计算开发人员计划)。
下载后,解压缩文件并将其复制到 CUDA 工具包目录(此处假设在 /usr/local/cuda/ 中):
$ sudo tar -xvf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
第 3 步:安装依赖项
Caffe依赖于多个库,您应该从您系统的数据包管理器获得这些库。
在 Ubuntu 14.04 中,将使用以下命令安装必要的库:
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev git
$ sudo apt-get install --no-install-recommends libboost-all-dev
第4步:安装 NCCL
在多个 GPU 上运行 Caffe 需要使用 NVIDIA NCCL。可使用以下命令安装 NCCL:
$ git clone
$ cd nccl
$ sudo make install -j4
NCCL 库和文件头将安装在 /usr/local/lib 和 /usr/local/include 中。
第5步:安装 Caffe
我们建议安装 NVIDIA 发布的新版 Caffe,请访问获取新版本。截至发稿时,超级新版本为 0.15.9。
$ wget
$ tar -zxf v0.15.9.tar.gz
$ cd caffe-0.15.9
$ cp Makefile.config.example Makefile.config
在文本编辑器中打开新创建的 Makefile.config,然后进行以下更改:
取消对行 USE_CUDNN := 1 的注释。这可以启用 cuDNN 加速。
取消对行 USE_NCCL := 1 的注释。这可以启用在多个 GPU 上运行 Caffe 所需的 NCCL。
保存并关闭文件。现在,您可以编译 Caffe 了。
$ make all -j4
完成此命令后,您会在 build/tools/caffe 中获得 Caffe 二进制文件。
准备图像数据库
测试 Caffe 的训练性能需要使用图像数据库作为输入资源。Caffe 自带多个模型,可使用来自 ILSVRC12 挑战赛(“ImageNet”)的图像。原始图像文件可从 下载(您将需要开通帐户并同意其条款)。下载原始图像文件并解压到您的系统中后,请继续执行以下步骤。假设原始图像以如下方式存储在您的磁盘中:
/path/to/imagenet/train/n01440764/n01440764_10026.JPEG
/path/to/imagenet/val/ILSVRC2012_val_00000001.JPEG
第 6 步:下载辅助数据
$ ./data/ilsvrc12/get_ilsvrc_aux.sh
第 7 步:创建数据库在文本编辑器中打开文件 examples/imagenet/create_imagenet.sh,然后进行以下更改:
将变量 TRAIN_DATA_ROOT 和 VAL_DATA_ROOT 更改为您解压原始图像的路径。设置 RESIZE=true 以便在将图像添加到数据库之前将其调整到适当大小。
保存并关闭文件。现在,您可以使用以下命令创建图像数据库了:$ ./examples/imagenet/create_imagenet.sh
然后,使用以下命令创建所需的图像均值文件:
$ ./examples/imagenet/make_imagenet_mean.sh
发表评论
0条评论软件排行榜
- 1python最新版本2024 v3.12.3官方版
- 2jdk17官方版 附安装教程
- 3RedisInsight官方版 v2.44
- 4java se development kit 9 64位(java9 64位) v9.0.4官方版
- 5友善串口调试助手 v3.7.2绿色版
- 6x64dbg程序调试工具 v2024.11
- 7microsoft visual c++ 2019(vc2019运行库) x86/x64简体中文版
- 8labelimg图像标注工具 v1.8.1官方版
- 9VBA for WPS v7.0
- 10virtual serial ports driver虚拟串口调试工具 v11.0.1047.0官方版
热门推荐
- dotCover 2024官方版 v2024.2.549.78M / 多国语言
- python最新版本2024 v3.12.3官方版25.2M / 简体中文
- 微软visual c++运行库合集包 v3.0.22.0317官方版85.82M / 简体中文
- dwin dgus(开发配置工具) v5.04官方版6.87M / 简体中文
- RegEx Tester(正则表达式调试工具) v3.2.0.0绿色版26K / 英文
- Report Builder v3.0官方版32.16M / 简体中文
- Convert.NET(代码翻译器) v8.4.6675.71官方版4.48M / 多国语言[中文]
- msys2(类Linux开发环境) v2016.10.25官方版100.11M / 简体中文
- node.js安装包 v18.12.127.76M / 简体中文
- APKSign(APK签名工具) v1.0官方版292K / 简体中文