AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)
AlexeyAB DarkNet YOLOv3框架解析與應用實踐(六)
- Tiny Darknet
聽過很多人談論SqueezeNet。
SqueezeNet很酷,但它只是優化參數計數。當大多數高質量的圖像是10MB或更大時,為什么要關心的型號是5MB還是50MB?如果想要一個小模型,實際上很快,為什么不看看darknet參考網絡?它只有28MB,但更重要的是,它只有8億個浮點運算。最初的Alexnet是23億。darknet是速度的2.9倍,而且它很小,準確度提高了4%。
那么SqueezeNet呢?當然,重量只有4.8mb,但向前傳球仍然是22億次。Alexnet是一個偉大的分類第一關,但不應該被困在時代時,網絡這么壞也這么慢!
但不管怎樣,人都很喜歡SqueezeNet絡,所以如果真的堅持使用小型網絡,請使用:
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參考模型,但如果你堅持想要一個小模型,請使用Tiny Darknet。或者自己訓練,應該很容易!
下面是如何在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讓對玩游戲的神經網絡感興趣。
還沒有真正讀過他的論文,但已經實現了所想象的類似于他的策略網絡的東西。它是一種神經網絡,預測圍棋中最有可能的下一步動作。可以和專業游戲一起玩,看看接下來可能會發生什么動作,讓它自己玩,或者嘗試與它對抗!
目前DarkGo的水平是1。這對于一個沒有前瞻性的網絡來說是非常好的,但是只評估當前的狀態。
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
這將產生一個交互式圍棋板。可以:
按回車鍵,只需從計算機中播放第一個建議的移動
輸入一個類似于3的數字來播放該數字建議
輸入一個像A 15這樣的位置來執行這個動作
輸入c A 15以在A 15清除任何碎片
輸入b 15在a15處放置黑色塊
輸入w A 15在15處放置一個白色塊
輸入p通過轉彎
玩得高興!
如果希望網絡更強大,請將flag-multi添加到testing命令中。這將在多次旋轉和翻轉時評估板,以獲得更好的概率估計。它可以在CPU上很慢,但如果有CUDA的話,它會很快。
數據
使用休·珀金斯的Github的Go數據集。給Darknet提供的數據是一個單通道圖像,對當前游戲狀態進行編碼。1代表的棋子,-1代表對手的棋子,0代表空白。該網絡預測當前玩家下一步可能在哪里玩。
在后處理后使用的完整數據集可以在此處找到(3.0
GB),僅用于訓練:
開始訓練
Hardware Guide: Neural Networks on GPUs (Updated 2016-1-30)
卷積神經網絡目前在計算機視覺領域非常流行。然而,由于它是相對較新的,而且這個領域在它周圍發展的如此之快,許多人對如何最好地訓練它感到困惑。
英偉達希望您購買他的新數字Devbox,但價格為15000美元,有8-10周的延遲時間,不知道為什么會有人想要它。大約6000美元稅后,可以建立自己的4 GPU盒,在短短幾天內從新蛋船運。
完整版本
可以在這里找到的全部build編譯。這只是為了盒子,還需要一些GPU。從亞馬遜買了4輛EVGA Titan_X。
基本的電腦是1400美元,再加上4千美元的GPU,就準備好了!不到15000美元。 GPU
可能最重要和最昂貴的部分,的build編譯將是GPU,并有充分的理由。gpu在訓練和測試神經網絡方面比CPU快100倍以上。的大部分計算都是將大矩陣相乘在一起,所以需要一張具有高單精度性能的卡。
CPU: Intel Core i7-5820K
大量廉價內存。32GB應該足夠了,盡管這意味著的RAM比VRAM少!
SSD: Mushkin Enhanced Reactor
2.5" 1TB
Titan X
這可能是想要的。這款游戲機被設計成英偉達(NVIDIA)最高端的游戲GPU,其處理能力高達7 TFLOPS,售價僅為1000美元,您可以將其中的4臺設備安裝在一臺機器上。有了12GB的VRAM,他可以運行所有的大模型,并有足夠的空間。
網上的人似乎認為EVGA和華碩在質量上是相當的,但EVGA有更好的客戶服務,所以會得到那個。在亞馬遜買的,因為它比其他選擇便宜一點,而且發貨很快。
競品:特斯拉K40、K80、其他GeForce 900
K40和K80更傾向于高雙精度的性能,并不真正關心。它的單精度性能與泰坦X不相上下,但有著顯著的提高。
其他高端GTX卡,如980和980Ti,與Titan X相比,可以獲得很好的單精度性能,但如果您需要大量的處理能力,則使用4 Titan X運行一臺機器要比使用8 980生產兩臺機器簡單得多。下面是比較:
·
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/
從效率的角度來看,980TI是領先的。不過,確實做出了一些犧牲:只有6gb的VRAM,總體性能也比較慢。如果手頭拮據, 980TI是個不錯的選擇。主要的外賣是,無論如何,不要得到特斯拉斯。拿出來的東西都很貴。如果想在一個盒子比泰坦X的整體處理能力是最好的選擇。
Motherboard: GIGABYTE
GA-X99-UD3P
主板最重要的方面是,它可以容納所有的卡。不管選什么,確保它能支持4卡。一般來說,尋找高端游戲主板。有足夠的空間放4張雙寬卡。
SSD: Mushkin Enhanced Reactor
2.5" 1TB
可以花很多錢買一個像NVIDIA的devbox那樣的9tb RAID,或者可以只買一個SSD。備份硬盤仍然是個好主意,可以放在同一臺機器上,也可以通過遠程同步訓練過的型號。但這一個固態硬盤將足以存儲和服務您的數據,甚至到4個GPU同時。可以在一個磁盤上同時運行4個最快的Imagenet模型,而不會延遲訓練。這意味著它每秒加載大約1000個圖像(大約16MB)!因為大多數型號都比較大,所以現在從磁盤加載不會成為您的瓶頸。 唯一的缺點是尺寸。如果處理的是非常大的數據集,可能需要一個更大的硬盤來存儲數據,然后再進行預處理。
Case: Rosewill Thor V2
這可能是最不重要的,但看起來確實很酷!真的只需要一個足夠大的箱子來舒適地安裝所有的部件。4 GPU占用了很多空間!也想要酷的東西。Rosewill包4風扇預先安裝和足夠的空間,不必擔心電纜管理,這是很好的,性價比高。
總結
以上是生活随笔為你收集整理的AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AlexeyAB DarkNet YOL
- 下一篇: 相机畸变与标定