AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)
AlexeyAB DarkNet YOLOv3框架解析與應(yīng)用實(shí)踐(六)
- Tiny Darknet
聽(tīng)過(guò)很多人談?wù)揝queezeNet。
SqueezeNet很酷,但它只是優(yōu)化參數(shù)計(jì)數(shù)。當(dāng)大多數(shù)高質(zhì)量的圖像是10MB或更大時(shí),為什么要關(guān)心的型號(hào)是5MB還是50MB?如果想要一個(gè)小模型,實(shí)際上很快,為什么不看看darknet參考網(wǎng)絡(luò)?它只有28MB,但更重要的是,它只有8億個(gè)浮點(diǎn)運(yùn)算。最初的Alexnet是23億。darknet是速度的2.9倍,而且它很小,準(zhǔn)確度提高了4%。
那么SqueezeNet呢?當(dāng)然,重量只有4.8mb,但向前傳球仍然是22億次。Alexnet是一個(gè)偉大的分類(lèi)第一關(guān),但不應(yīng)該被困在時(shí)代時(shí),網(wǎng)絡(luò)這么壞也這么慢!
但不管怎樣,人都很喜歡SqueezeNet絡(luò),所以如果真的堅(jiān)持使用小型網(wǎng)絡(luò),請(qǐng)使用:
Tiny Darknet
Model
Top-1
Top-5
Ops
Size
AlexNet
57.0
80.3
2.27 Bn
238 MB
Darknet Reference
61.1
83.0
0.81 Bn
28 MB
SqueezeNet
57.5
80.3
2.17 Bn
4.8 MB
Tiny Darknet
58.7
81.7
0.98 Bn
4.0 MB
真正的贏家顯然是Darknet參考模型,但如果你堅(jiān)持想要一個(gè)小模型,請(qǐng)使用Tiny Darknet。或者自己訓(xùn)練,應(yīng)該很容易!
下面是如何在Darknet中使用它(以及如何安裝Darknet):
git clone
https://github.com/pjreddie/darknet
cd darknet
make
wget
https://pjreddie.com/media/files/tiny.weights
./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg
Hopefully
you see something like this:
data/dog.jpg:
Predicted in 0.160994 seconds.
malamute: 0.167168
Eskimo dog:
0.065828
dogsled: 0.063020
standard schnauzer:
0.051153
Siberian husky: 0.037506
下面是配置文件:tiny.cfg
模型只是一些3x3和1x1卷積層:
layer filters
size input output
0 conv
16 3 x 3 / 1 224 x 224 x
3 -> 224 x 224 x
16
1 max 2 x 2 / 2 224 x 224 x
16 -> 112 x 112 x
16
2 conv
32 3 x 3 / 1 112 x 112 x
16 -> 112 x 112 x
32
3 max 2 x 2 / 2 112 x 112 x
32 -> 56 x
56 x 32
4 conv
16 1 x 1 / 1 56 x
56 x 32 ->
56 x 56 x 16
5 conv
128 3 x 3 / 1 56 x
56 x 16 ->
56 x 56 x 128
6 conv
16 1 x 1 / 1 56 x
56 x 128 -> 56 x
56 x 16
7 conv
128 3 x 3 / 1 56 x
56 x 16 ->
56 x 56 x 128
8 max 2 x 2 / 2 56 x
56 x 128 -> 28 x
28 x 128
9 conv
32 1 x 1 / 1 28 x
28 x 128 -> 28 x
28 x 32
10 conv
256 3 x 3 / 1 28 x
28 x 32 ->
28 x 28 x 256
11 conv
32 1 x 1 / 1 28 x
28 x 256 -> 28 x
28 x 32
12 conv
256 3 x 3 / 1 28 x
28 x 32 ->
28 x 28 x 256
13 max 2 x 2 / 2 28 x
28 x 256 -> 14 x
14 x 256
14 conv
64 1 x 1 / 1 14 x
14 x 256 -> 14 x
14 x 64
15 conv
512 3 x 3 / 1 14 x
14 x 64 ->
14 x 14 x 512
16 conv
64 1 x 1 / 1 14 x
14 x 512 -> 14 x
14 x 64
17 conv
512 3 x 3 / 1 14 x
14 x 64 ->
14 x 14 x 512
18 conv
128 1 x 1 / 1 14 x
14 x 512 -> 14 x
14 x 128
19 conv
1000 1 x 1 / 1 14 x
14 x 128 -> 14 x
14 x1000
20 avg 14 x 14 x1000
-> 1000
21 softmax 1000
22 cost 1000
- DarkGo: Go in Darknet
AlphaGo讓對(duì)玩游戲的神經(jīng)網(wǎng)絡(luò)感興趣。
還沒(méi)有真正讀過(guò)他的論文,但已經(jīng)實(shí)現(xiàn)了所想象的類(lèi)似于他的策略網(wǎng)絡(luò)的東西。它是一種神經(jīng)網(wǎng)絡(luò),預(yù)測(cè)圍棋中最有可能的下一步動(dòng)作。可以和專(zhuān)業(yè)游戲一起玩,看看接下來(lái)可能會(huì)發(fā)生什么動(dòng)作,讓它自己玩,或者嘗試與它對(duì)抗!
目前DarkGo的水平是1。這對(duì)于一個(gè)沒(méi)有前瞻性的網(wǎng)絡(luò)來(lái)說(shuō)是非常好的,但是只評(píng)估當(dāng)前的狀態(tài)。
Playing With A Trained Model
First install Darknet, this can be accomplished with:
git clone
https://github.com/pjreddie/darknet
cd darknet
make
Also
download the weights file:
wget
pjreddie.com/media/files/go.weights
Then run
the Go engine in testing mode:
./darknet go test
cfg/go.test.cfg go.weights
這將產(chǎn)生一個(gè)交互式圍棋板。可以:
按回車(chē)鍵,只需從計(jì)算機(jī)中播放第一個(gè)建議的移動(dòng)
輸入一個(gè)類(lèi)似于3的數(shù)字來(lái)播放該數(shù)字建議
輸入一個(gè)像A 15這樣的位置來(lái)執(zhí)行這個(gè)動(dòng)作
輸入c A 15以在A 15清除任何碎片
輸入b 15在a15處放置黑色塊
輸入w A 15在15處放置一個(gè)白色塊
輸入p通過(guò)轉(zhuǎn)彎
玩得高興!
如果希望網(wǎng)絡(luò)更強(qiáng)大,請(qǐng)將flag-multi添加到testing命令中。這將在多次旋轉(zhuǎn)和翻轉(zhuǎn)時(shí)評(píng)估板,以獲得更好的概率估計(jì)。它可以在CPU上很慢,但如果有CUDA的話(huà),它會(huì)很快。
數(shù)據(jù)
使用休·珀金斯的Github的Go數(shù)據(jù)集。給Darknet提供的數(shù)據(jù)是一個(gè)單通道圖像,對(duì)當(dāng)前游戲狀態(tài)進(jìn)行編碼。1代表的棋子,-1代表對(duì)手的棋子,0代表空白。該網(wǎng)絡(luò)預(yù)測(cè)當(dāng)前玩家下一步可能在哪里玩。
在后處理后使用的完整數(shù)據(jù)集可以在此處找到(3.0
GB),僅用于訓(xùn)練:
開(kāi)始訓(xùn)練
Hardware Guide: Neural Networks on GPUs (Updated 2016-1-30)
卷積神經(jīng)網(wǎng)絡(luò)目前在計(jì)算機(jī)視覺(jué)領(lǐng)域非常流行。然而,由于它是相對(duì)較新的,而且這個(gè)領(lǐng)域在它周?chē)l(fā)展的如此之快,許多人對(duì)如何最好地訓(xùn)練它感到困惑。
英偉達(dá)希望您購(gòu)買(mǎi)他的新數(shù)字Devbox,但價(jià)格為15000美元,有8-10周的延遲時(shí)間,不知道為什么會(huì)有人想要它。大約6000美元稅后,可以建立自己的4 GPU盒,在短短幾天內(nèi)從新蛋船運(yùn)。
完整版本
可以在這里找到的全部build編譯。這只是為了盒子,還需要一些GPU。從亞馬遜買(mǎi)了4輛EVGA Titan_X。
基本的電腦是1400美元,再加上4千美元的GPU,就準(zhǔn)備好了!不到15000美元。 GPU
可能最重要和最昂貴的部分,的build編譯將是GPU,并有充分的理由。gpu在訓(xùn)練和測(cè)試神經(jīng)網(wǎng)絡(luò)方面比CPU快100倍以上。的大部分計(jì)算都是將大矩陣相乘在一起,所以需要一張具有高單精度性能的卡。
CPU: Intel Core i7-5820K
大量廉價(jià)內(nèi)存。32GB應(yīng)該足夠了,盡管這意味著的RAM比VRAM少!
SSD: Mushkin Enhanced Reactor
2.5" 1TB
Titan X
這可能是想要的。這款游戲機(jī)被設(shè)計(jì)成英偉達(dá)(NVIDIA)最高端的游戲GPU,其處理能力高達(dá)7 TFLOPS,售價(jià)僅為1000美元,您可以將其中的4臺(tái)設(shè)備安裝在一臺(tái)機(jī)器上。有了12GB的VRAM,他可以運(yùn)行所有的大模型,并有足夠的空間。
網(wǎng)上的人似乎認(rèn)為EVGA和華碩在質(zhì)量上是相當(dāng)?shù)?#xff0c;但EVGA有更好的客戶(hù)服務(wù),所以會(huì)得到那個(gè)。在亞馬遜買(mǎi)的,因?yàn)樗绕渌x擇便宜一點(diǎn),而且發(fā)貨很快。
競(jìng)品:特斯拉K40、K80、其他GeForce 900
K40和K80更傾向于高雙精度的性能,并不真正關(guān)心。它的單精度性能與泰坦X不相上下,但有著顯著的提高。
其他高端GTX卡,如980和980Ti,與Titan X相比,可以獲得很好的單精度性能,但如果您需要大量的處理能力,則使用4 Titan X運(yùn)行一臺(tái)機(jī)器要比使用8 980生產(chǎn)兩臺(tái)機(jī)器簡(jiǎn)單得多。下面是比較:
·
Titan X: 1,000,6.9TFLOPS,6.9GFLOPS/1,000, 6.9 TFLOPS, 6.9 GFLOPS/1,000,6.9TFLOPS,6.9GFLOPS/
·
GTX 980 Ti: 670,5.6TFLOPS,8.4GFLOPS/670, 5.6 TFLOPS, 8.4 GFLOPS/670,5.6TFLOPS,8.4GFLOPS/
·
GTX 980: 500,4.1TFLOPS,8.2GFLOPS/500, 4.1 TFLOPS, 8.2 GFLOPS/500,4.1TFLOPS,8.2GFLOPS/
·
Tesla K40: 3,000,4.3TFLOPS,1.4GFLOPS/3,000, 4.3 TFLOPS, 1.4 GFLOPS/3,000,4.3TFLOPS,1.4GFLOPS/
·
Tesla K80: 5,000,8.7TFLOPS,1.7GFLOPS/5,000, 8.7 TFLOPS, 1.7 GFLOPS/5,000,8.7TFLOPS,1.7GFLOPS/
從效率的角度來(lái)看,980TI是領(lǐng)先的。不過(guò),確實(shí)做出了一些犧牲:只有6gb的VRAM,總體性能也比較慢。如果手頭拮據(jù), 980TI是個(gè)不錯(cuò)的選擇。主要的外賣(mài)是,無(wú)論如何,不要得到特斯拉斯。拿出來(lái)的東西都很貴。如果想在一個(gè)盒子比泰坦X的整體處理能力是最好的選擇。
Motherboard: GIGABYTE
GA-X99-UD3P
主板最重要的方面是,它可以容納所有的卡。不管選什么,確保它能支持4卡。一般來(lái)說(shuō),尋找高端游戲主板。有足夠的空間放4張雙寬卡。
SSD: Mushkin Enhanced Reactor
2.5" 1TB
可以花很多錢(qián)買(mǎi)一個(gè)像NVIDIA的devbox那樣的9tb RAID,或者可以只買(mǎi)一個(gè)SSD。備份硬盤(pán)仍然是個(gè)好主意,可以放在同一臺(tái)機(jī)器上,也可以通過(guò)遠(yuǎn)程同步訓(xùn)練過(guò)的型號(hào)。但這一個(gè)固態(tài)硬盤(pán)將足以存儲(chǔ)和服務(wù)您的數(shù)據(jù),甚至到4個(gè)GPU同時(shí)。可以在一個(gè)磁盤(pán)上同時(shí)運(yùn)行4個(gè)最快的Imagenet模型,而不會(huì)延遲訓(xùn)練。這意味著它每秒加載大約1000個(gè)圖像(大約16MB)!因?yàn)榇蠖鄶?shù)型號(hào)都比較大,所以現(xiàn)在從磁盤(pán)加載不會(huì)成為您的瓶頸。 唯一的缺點(diǎn)是尺寸。如果處理的是非常大的數(shù)據(jù)集,可能需要一個(gè)更大的硬盤(pán)來(lái)存儲(chǔ)數(shù)據(jù),然后再進(jìn)行預(yù)處理。
Case: Rosewill Thor V2
這可能是最不重要的,但看起來(lái)確實(shí)很酷!真的只需要一個(gè)足夠大的箱子來(lái)舒適地安裝所有的部件。4 GPU占用了很多空間!也想要酷的東西。Rosewill包4風(fēng)扇預(yù)先安裝和足夠的空間,不必?fù)?dān)心電纜管理,這是很好的,性?xún)r(jià)比高。
總結(jié)
以上是生活随笔為你收集整理的AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AlexeyAB DarkNet YOL
- 下一篇: 相机畸变与标定