Caffe Windows

Caffe Windows

大小:8.09M

更新时间:23-09-13

系统:Pc

开始下载

caffe全称Convolutional Architecture for Fast Feature Embedding,由伯克利视觉和学习中心 (BVLC) 及社区贡献者共同开发,是一个清晰,可读性高,快速的深度学习框架,可为学术研究项目、新创公司原型和大规模行业应用程序提供强大的视觉、语音和多媒体支持。

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

应用信息

语言英文

同类热门

msys2(类Linux开发环境)msys2(类Linux开发环境) python最新版本python最新版本 APKSign(APK签名工具)APKSign(APK签名工具) node.js安装包node.js安装包 dotCover 2024官方版dotCover 2024官方版 Report Builder 3.0Report Builder 3.0 JDK17官方版JDK17官方版 Convert.NET(代码翻译器)Convert.NET(代码翻译器)

热门标签

产品设计软件大全 电脑微信营销软件大全 电脑pdf阅读软件大全 出纳软件大全 ps滤镜插件大全 电脑排课软件大全 回收站数据恢复软件 数据备份恢复软件大全 电脑截图软件大全 电脑桌面分屏软件大全 电脑万能驱动软件 做自媒体常用的视频处理软件

网友评论0人参与,0条评论

评论需审核后才能显示

最新排行

手游排行软件排行热门应用