首 頁(yè)
手機(jī)版

Caffe Windows

  • 軟件大?。?.09M
  • 軟件語(yǔ)言:英文
  • 軟件類(lèi)型:國(guó)外軟件
  • 軟件授權(quán):免費(fèi)軟件
  • 更新時(shí)間:2023/09/13
  • 軟件類(lèi)別:編程其它
  • 應(yīng)用平臺(tái):Windows8,Windows7,WinVista,WinXP,Linux
網(wǎng)友評(píng)分:5.0分
網(wǎng)友評(píng)論 下載地址 收藏該頁(yè)
本地下載
caffe全稱(chēng)Convolutional Architecture for Fast Feature Embedding,由伯克利視覺(jué)和學(xué)習(xí)中心 (BVLC) 及社區(qū)貢獻(xiàn)者共同開(kāi)發(fā),是一個(gè)清晰,可讀性高,快速的深度學(xué)習(xí)框架,可為學(xué)術(shù)研究項(xiàng)目、新創(chuàng)公司原型和大規(guī)模行業(yè)應(yīng)用程序提供強(qiáng)大的視覺(jué)、語(yǔ)音和多媒體支持。

Caffe的核心程序是用C++實(shí)現(xiàn)的,并提供了Python和Matlab的接口,也就是說(shuō)你可以在python和matlab中調(diào)用caffe訓(xùn)練好的模型。并且caffe支持cpu和gpu的無(wú)縫切換,這一點(diǎn)在現(xiàn)在的大數(shù)據(jù)時(shí)代顯得尤為重要。目前搞深度學(xué)習(xí)的人大部分都是在gpu上跑程序的,一個(gè)ImageNet數(shù)據(jù)集有上千萬(wàn)張圖片,加上深度學(xué)習(xí)使用的模型層數(shù)又比較多,跑一個(gè)程序所花費(fèi)的時(shí)間都是以天為單位計(jì)算的,若在cpu上跑,可能需要一周的時(shí)間,但在gpu上可能只需兩三天就好了。

但是對(duì)于我們這些正常人來(lái)說(shuō),如果讓我們?cè)趃pu上進(jìn)行編程,恐怕都要傻眼了,這時(shí)caffe就提供了一個(gè)便捷的方式,可以讓你忽略cpu和gpu的差別,僅僅一個(gè)參數(shù)就可以讓你的模型在cpu和gpu之間自由切換,大大提升了各位童鞋‘發(fā)論文’的速度。(還有一個(gè)python工具包也可以讓你方便的在cpu和gpu之間進(jìn)行切換,那就是Theano了,本人最初正是因?yàn)橹挥衟ython工具包才有支持gpu編程的功能,所以才棄matlab從python的) 

功能特色:

Caffe的設(shè)計(jì)考慮了以下幾個(gè)方面:

1、表示:模型和優(yōu)化以純文本的模式定義,而不是以代碼模式;

2、速度:運(yùn)算速度對(duì)于最先進(jìn)模型和海量數(shù)據(jù)是至關(guān)重要的;

3、模塊化:新的任務(wù)和配置要求框架具有靈活性和擴(kuò)展性;

4、開(kāi)放性:科研和應(yīng)用過(guò)程需要公共的代碼、可參考的模型和可再現(xiàn)性;

5、社區(qū):通過(guò)共同討論和具體協(xié)議共同開(kāi)發(fā)這個(gè)項(xiàng)目,學(xué)術(shù)研究、起步階段的原型和工業(yè)應(yīng)用可以共享各自的力量。

擁有以上諸多優(yōu)勢(shì),經(jīng)過(guò)兩年多的版本迭代,Caffe框架已經(jīng)在學(xué)術(shù)界和工業(yè)界得到了廣泛的認(rèn)可。

那么是什么原因促使caffe的運(yùn)行速度比其它深度學(xué)習(xí)框架的運(yùn)行速度快呢?個(gè)人認(rèn)為有以下幾點(diǎn): 

1、數(shù)據(jù)存儲(chǔ): 

Caffe生成的數(shù)據(jù)分為2種格式:Lmdb和Leveldb 

它們都是鍵/值對(duì)嵌入式數(shù)據(jù)庫(kù)管理系統(tǒng)編程庫(kù)。 

雖然lmdb的內(nèi)存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%,更重要的是lmdb允許多種訓(xùn)練模型同時(shí)讀取同一組數(shù)據(jù)集。 

因此lmdb取代了leveldb成為Caffe默認(rèn)的數(shù)據(jù)集生成格式。(這點(diǎn)得吐槽下了,沒(méi)空的自行跳過(guò)此段。之前用的是實(shí)驗(yàn)室服務(wù)器上安裝的老版本的caffe,在運(yùn)行MNIST和CIFAR-10的例子時(shí),caffe官網(wǎng)教程上的還是生成*_leveldb格式的數(shù)據(jù),但當(dāng)我?guī)滋旌笈躀mageNet實(shí)例時(shí),提示我找不到$CAFFE_ROOT/build/tools/目錄下的caffe文件,后來(lái)還是通過(guò)和網(wǎng)友的tools目錄下的文件對(duì)比才發(fā)現(xiàn),編譯后生成的老版本的caffe比新版的少了一堆東西,只好重新編譯新版本,編譯過(guò)程中發(fā)現(xiàn)缺少lmdb,查資料才發(fā)現(xiàn),caffe已經(jīng)用lmdb取代了leveldb,而返回去看之前的MNIST和CIFAR-10實(shí)例教程,發(fā)現(xiàn)教程上也已經(jīng)將leveldb的部分改成lmdb了。唉~,這更新速度也忒快了吧,還是提醒各位及時(shí)升級(jí),有問(wèn)題多看幾遍官網(wǎng)教程) 

2、數(shù)據(jù)傳輸 

當(dāng)數(shù)據(jù)在前向后向傳輸時(shí),caffe采用blobs的形式對(duì)數(shù)據(jù)進(jìn)行傳遞或處理,它是該框架采用的標(biāo)準(zhǔn)的存儲(chǔ)接口。下面是百度百科上對(duì)blob的一段解釋?zhuān)築LOB (binary large object),二進(jìn)制大對(duì)象,是一個(gè)可以存儲(chǔ)二進(jìn)制文件的容器。在計(jì)算機(jī)中,BLOB常常是數(shù)據(jù)庫(kù)中用來(lái)存儲(chǔ)二進(jìn)制文件的字段類(lèi)型。BLOB是一個(gè)大文件,典型的BLOB是一張圖片或一個(gè)聲音文件,由于它們的尺寸,必須使用特殊的方式來(lái)處理(例如:上傳、下載或者存放到一個(gè)數(shù)據(jù)庫(kù),caffe中的lmdb或leveldb) 

在caffe中,blob是一個(gè)四位數(shù)組,不過(guò)在不同的場(chǎng)合,各維表示的意義不同 

對(duì)于數(shù)據(jù):Number*Channel*Height*Width 

對(duì)于卷積權(quán)重:Output*Input*Height*Width 

對(duì)于卷積偏置:Output*1*1*1 

3、其它 

c++的運(yùn)行效率就不用多說(shuō)了,暫時(shí)這些吧,如有新內(nèi)容再補(bǔ)充了,也歡迎大家來(lái)補(bǔ)充……

介紹完caffe了,接下來(lái)就該安裝caffe跑跑實(shí)例看看效果了 

不過(guò)先說(shuō)明下,本系列caffe學(xué)習(xí)筆記中,不涉及caffe的安裝部分,如有此需求請(qǐng)移步他處。我用的是實(shí)驗(yàn)室的服務(wù)器,caffe是別人裝的,本人沒(méi)有root權(quán)限沒(méi)有實(shí)際安裝過(guò),所以安裝部分就無(wú)從奉告了~

CAFFE系統(tǒng)配置:

1、硬件配置

參數(shù)規(guī)格

CPU 架構(gòu)x86_64

系統(tǒng)內(nèi)存8-32GB

CPU1

GPU 型號(hào)NVIDIA TITAN X

GPU1-2

2、服務(wù)器

參數(shù)規(guī)格

CPU 架構(gòu)x86_64

系統(tǒng)內(nèi)存32 GB

每節(jié)點(diǎn)的 CPU 數(shù)目1-2

GPU 型號(hào)

Tesla M40

Tesla P100

每節(jié)點(diǎn)的 GPU 數(shù)目1-4

3、軟件配置

參數(shù)版本

操作系統(tǒng)Ubuntu 14.04

GPU 驅(qū)動(dòng)程序367.27 或更新版本

CUDA 工具包8.0

cuDNN 庫(kù)v5.1

如何下載并安裝Caffe

Caffe在更新的 NVIDIA Pascal GPU 上運(yùn)行的速度最高可提高65%,并能夠跨單個(gè)節(jié)點(diǎn)中的多個(gè) GPU 進(jìn)行擴(kuò)展。如今,您訓(xùn)練模型的時(shí)間可以從幾天縮短到幾個(gè)小時(shí)。

第1步:安裝 CUDA

要結(jié)合使用 Caffe 和 NVIDIA GPU,步要安裝CUDA 工具包。

第2步:安裝 cuDNN

安裝 CUDA 工具包后,下載適用于 Linux 的cuDNN v5.1 庫(kù)(請(qǐng)注意,您將需要注冊(cè)加速計(jì)算開(kāi)發(fā)人員計(jì)劃)。

下載后,解壓縮文件并將其復(fù)制到 CUDA 工具包目錄(此處假設(shè)在 /usr/local/cuda/ 中):

$ sudo tar -xvf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local

第 3 步:安裝依賴(lài)項(xiàng)

Caffe依賴(lài)于多個(gè)庫(kù),您應(yīng)該從您系統(tǒng)的數(shù)據(jù)包管理器獲得這些庫(kù)。

在 Ubuntu 14.04 中,將使用以下命令安裝必要的庫(kù):

$ 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

在多個(gè) GPU 上運(yùn)行 Caffe 需要使用 NVIDIA NCCL??墒褂靡韵旅畎惭b NCCL:

$ git clone

$ cd nccl

$ sudo make install -j4

NCCL 庫(kù)和文件頭將安裝在 /usr/local/lib 和 /usr/local/include 中。

第5步:安裝 Caffe

我們建議安裝 NVIDIA 發(fā)布的新版 Caffe,請(qǐng)?jiān)L問(wèn)獲取新版本。截至發(fā)稿時(shí),超級(jí)新版本為 0.15.9。

$ wget 

$ tar -zxf v0.15.9.tar.gz

$ cd caffe-0.15.9

$ cp Makefile.config.example Makefile.config

在文本編輯器中打開(kāi)新創(chuàng)建的 Makefile.config,然后進(jìn)行以下更改:

取消對(duì)行 USE_CUDNN := 1 的注釋。這可以啟用 cuDNN 加速。

取消對(duì)行 USE_NCCL := 1 的注釋。這可以啟用在多個(gè) GPU 上運(yùn)行 Caffe 所需的 NCCL。

保存并關(guān)閉文件?,F(xiàn)在,您可以編譯 Caffe 了。

$ make all -j4

完成此命令后,您會(huì)在 build/tools/caffe 中獲得 Caffe 二進(jìn)制文件。

準(zhǔn)備圖像數(shù)據(jù)庫(kù)

測(cè)試 Caffe 的訓(xùn)練性能需要使用圖像數(shù)據(jù)庫(kù)作為輸入資源。Caffe 自帶多個(gè)模型,可使用來(lái)自 ILSVRC12 挑戰(zhàn)賽(“ImageNet”)的圖像。原始圖像文件可從 下載(您將需要開(kāi)通帳戶(hù)并同意其條款)。下載原始圖像文件并解壓到您的系統(tǒng)中后,請(qǐng)繼續(xù)執(zhí)行以下步驟。假設(shè)原始圖像以如下方式存儲(chǔ)在您的磁盤(pán)中:

/path/to/imagenet/train/n01440764/n01440764_10026.JPEG

/path/to/imagenet/val/ILSVRC2012_val_00000001.JPEG

第 6 步:下載輔助數(shù)據(jù)

$ ./data/ilsvrc12/get_ilsvrc_aux.sh

第 7 步:創(chuàng)建數(shù)據(jù)庫(kù)

在文本編輯器中打開(kāi)文件 examples/imagenet/create_imagenet.sh,然后進(jìn)行以下更改:

將變量 TRAIN_DATA_ROOT 和 VAL_DATA_ROOT 更改為您解壓原始圖像的路徑。

設(shè)置 RESIZE=true 以便在將圖像添加到數(shù)據(jù)庫(kù)之前將其調(diào)整到適當(dāng)大小。

保存并關(guān)閉文件?,F(xiàn)在,您可以使用以下命令創(chuàng)建圖像數(shù)據(jù)庫(kù)了:

$ ./examples/imagenet/create_imagenet.sh

然后,使用以下命令創(chuàng)建所需的圖像均值文件:

$ ./examples/imagenet/make_imagenet_mean.sh

收起介紹展開(kāi)介紹

發(fā)表評(píng)論

0條評(píng)論