日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

caffe教程 (2)

發(fā)布時(shí)間:2023/12/10 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 caffe教程 (2) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

caffe教程

1 caffe簡(jiǎn)介

Caffe是一個(gè)深度學(xué)習(xí)框架,本教程解釋了它的理念,體系結(jié)構(gòu)和用法。這是一本實(shí)用指南和框架介紹,所以深入學(xué)習(xí)的全部前沿,背景和歷史不能在這里介紹。盡可能給出解釋,機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的背景是有幫助的。

2 Caffe特點(diǎn)

  • 表達(dá)式:模型和優(yōu)化定義為明文模式而不是代碼。
  • 速度:對(duì)于研究和行業(yè)來說,速度對(duì)于最先進(jìn)的模型和海量數(shù)據(jù)至關(guān)重要。
  • 模塊化:新的任務(wù)和設(shè)置需要靈活性和擴(kuò)展性。
  • 開放性:科學(xué)和應(yīng)用進(jìn)展需要共同的代碼,參考模型和可重復(fù)性。
  • 社區(qū):學(xué)術(shù)研究,啟動(dòng)原型和工業(yè)應(yīng)用都通過在BSD-2項(xiàng)目中進(jìn)行聯(lián)合討論和開發(fā)來共享優(yōu)勢(shì)。

3 caffe組成

Blob,Layer,Net,Solver

Blob:是基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),是用來保存學(xué)習(xí)到的參數(shù)以及網(wǎng)絡(luò)傳輸過程中產(chǎn)生數(shù)據(jù)的類。

Layer:網(wǎng)絡(luò)的基本單元,由此派生出了各種層類。修改這部分的人主要是研究特征表達(dá)方向的。

Net:網(wǎng)絡(luò)的搭建,將Layer所派生出層類組合成網(wǎng)絡(luò)。

Solver:是Net的求解,修改這部分人主要會(huì)是研究DL求解方向的。

3.1blob

Caffe支持CUDA,在數(shù)據(jù)級(jí)別上也做了一些優(yōu)化,這部分最重要的是知道它主要是對(duì)protocol buffer所定義的數(shù)據(jù)結(jié)構(gòu)的繼承,Caffe也因此可以在盡可能小的內(nèi)存占用下獲得很高的效率。(追求性能的同時(shí)Caffe也犧牲了一些代碼可讀性)
在更高一級(jí)的Layer中Blob用下面的形式表示學(xué)習(xí)到的參數(shù):

vector<shared_ptr<Blob<Dtype> > > blobs_;

這里使用的是一個(gè)Blob的容器是因?yàn)槟承㎜ayer包含多組學(xué)習(xí)參數(shù),比如多個(gè)卷積核的卷積層。
以及Layer所傳遞的數(shù)據(jù)形式,后面還會(huì)涉及到這里:

vector<Blob<Dtype>*> &bottom; vector<Blob<Dtype>*> *top

3.2 Layer

5大Layer派生類型

Caffe十分強(qiáng)調(diào)網(wǎng)絡(luò)的層次性,也就是說卷積操作,非線性變換(ReLU等),Pooling,權(quán)值連接等全部都由某一種Layer來表示。具體來說分為5大類Layer

1 NeuronLayer類 定義于neuron_layers.hpp中,其派生類主要是元素級(jí)別的運(yùn)算(比如Dropout運(yùn)算,激活函數(shù)ReLu,Sigmoid等),運(yùn)算均為同址計(jì)算(in-place computation,返回值覆蓋原值而占用新的內(nèi)存)。

2 LossLayer類 定義于loss_layers.hpp中,其派生類會(huì)產(chǎn)生loss,只有這些層能夠產(chǎn)生loss。

3 數(shù)據(jù)層 定義于data_layer.hpp中,作為網(wǎng)絡(luò)的最底層,主要實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換。

4 特征表達(dá)層(我自己分的類)定義于vision_layers.hpp(為什么叫vision這個(gè)名字,我目前還不清楚),實(shí)現(xiàn)特征表達(dá)功能,更具體地說包含卷積操作,Pooling操作,他們基本都會(huì)產(chǎn)生新的內(nèi)存占用(Pooling相對(duì)較小)。

5 網(wǎng)絡(luò)連接層和激活函數(shù)(我自己分的類)定義于common_layers.hpp,Caffe提供了單個(gè)層與多個(gè)層的連接,并在這個(gè)頭文件中聲明。這里還包括了常用的全連接層InnerProductLayer類。

Layer的重要成員函數(shù)

在Layer內(nèi)部,數(shù)據(jù)主要有兩種傳遞方式,正向傳導(dǎo)(Forward)和反向傳導(dǎo)(Backward)。Forward和Backward有CPU和GPU(部分有)兩種實(shí)現(xiàn)。Caffe中所有的Layer都要用這兩種方法傳遞數(shù)據(jù)。

未完待續(xù)……………………

總結(jié)

以上是生活随笔為你收集整理的caffe教程 (2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。