亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Movidius神經(jīng)計(jì)算棒初體驗(yàn)

Turbo / 3633人閱讀

摘要:神經(jīng)計(jì)算棒是個(gè)使用接口的深度學(xué)習(xí)設(shè)備,比盤略大,功耗,浮點(diǎn)性能可達(dá)。這里用了我自己改的才能用模型調(diào)優(yōu)命令可以查看模型中每一層使用的內(nèi)存帶寬算力,模型調(diào)優(yōu)可以以此為參考。

Intel? Movidius? 神經(jīng)計(jì)算棒(NCS)是個(gè)使用USB接口的深度學(xué)習(xí)設(shè)備,比U盤略大,功耗1W,浮點(diǎn)性能可達(dá)100GFLOPs。

100GFLOPs大概是什么概念呢,i7-8700K有59.26GLOPs,Titan V FP16 有24576GLOPs……(僅供娛樂參考,對(duì)比是不同精度的)。

安裝NCSDK

目前NCSDK官方安裝腳本只支持Ubuntu 16.04和Raspbian Stretch,折騰一下在其他Linux系統(tǒng)運(yùn)行也是沒問題的,例如我用ArchLinux,大概步驟如下:

安裝python 3、opencv、tensorflow 1.4.0還有其他依賴

編譯安裝caffe,需要用到這個(gè)沒合并的PR:Fix boost_python discovery for distros with different naming scheme

改官方的腳本,跳過系統(tǒng)檢查,跳過依賴安裝(在第一步就手工裝完了)

當(dāng)我順利折騰完之外,才發(fā)現(xiàn)AUR是有了現(xiàn)成的ncsdk。

安裝完成后改LD_LIBRARY_PATH和PYTHONPATH:

export LD_LIBRARY_PATH=/opt/movidius/bvlc-caffe/build/install/lib64/:/usr/local/lib/
export PYTHONPATH="${PYTHONPATH}:/opt/movidius/caffe/python"
模型編譯

使用NCS需要把caffe或tensorflow訓(xùn)練好的模型轉(zhuǎn)換成NCS支持的格式。因?yàn)镵eras有TF后端,所以用Keras的模型也是可以的。這里以Keras自帶的VGG16為例:

from keras.applications import VGG16
from keras import backend as K
import tensorflow as tf

mn = VGG16()
saver = tf.train.Saver()
sess = K.get_session()
saver.save(sess, "./TF_Model/vgg16")

這里直接用tf.train.Saver保存了一個(gè)tf模型,然后用mvNCCompile命令進(jìn)行編譯,需要指定網(wǎng)絡(luò)的輸入和輸出節(jié)點(diǎn),-s 12表示使用12個(gè)SHAVE處理器:

$ mvNCCompile TF_Model/vgg16.meta -in=input_1 -on=predictions/Softmax -s 12

順利的話就的到一個(gè)graph文件。

(這里用了我自己改的TensorFlowParser.py才能用)

模型調(diào)優(yōu)

mvNCProfile命令可以查看模型中每一層使用的內(nèi)存帶寬、算力,模型調(diào)優(yōu)可以以此為參考。

$ mvNCProfile TF_Model/vgg16.meta -in=input_1 -on=predictions/Softmax -s 12

Detailed Per Layer Profile
                                                       Bandwidth   time
#    Name                                        MFLOPs  (MB/s)    (ms)
=======================================================================
0    block1_conv1/Relu                            173.4   304.2   8.510
1    block1_conv2/Relu                           3699.4   662.6  83.297
2    block1_pool/MaxPool                            3.2   831.6   7.366
3    block2_conv1/Relu                           1849.7   419.9  33.158
4    block2_conv2/Relu                           3699.4   474.2  58.718
5    block2_pool/MaxPool                            1.6   923.4   3.317
6    block3_conv1/Relu                           1849.7   171.8  43.401
7    block3_conv2/Relu                           3699.4   180.6  82.579
8    block3_conv3/Relu                           3699.4   179.8  82.921
9    block3_pool/MaxPool                            0.8   919.2   1.666
10   block4_conv1/Relu                           1849.7   137.3  41.554
11   block4_conv2/Relu                           3699.4   169.0  67.442
12   block4_conv3/Relu                           3699.4   169.6  67.232
13   block4_pool/MaxPool                            0.4   929.7   0.825
14   block5_conv1/Relu                            924.8   308.9  20.176
15   block5_conv2/Relu                            924.8   318.0  19.594
16   block5_conv3/Relu                            924.8   314.9  19.788
17   block5_pool/MaxPool                            0.1   888.7   0.216
18   fc1/Relu                                     205.5  2155.9  90.937
19   fc2/Relu                                      33.6  2137.2  14.980
20   predictions/BiasAdd                            8.2  2645.0   2.957
21   predictions/Softmax                            0.0    19.0   0.201
-----------------------------------------------------------------------
                           Total inference time                  750.84
-----------------------------------------------------------------------
Generating Profile Report "output_report.html"...

可以看到執(zhí)行1此VGG16推斷需要750ms,主要時(shí)間花在了幾個(gè)卷積層,所以這個(gè)模型用在實(shí)時(shí)的視頻分析是不合適的,這時(shí)可以試試其他的網(wǎng)絡(luò),例如SqueezeNet只要48ms:

Detailed Per Layer Profile
                                                       Bandwidth   time
#    Name                                        MFLOPs  (MB/s)    (ms)
=======================================================================
0    data                                           0.0 78350.0   0.004
1    conv1                                        347.7  1622.7   8.926
2    pool1                                          2.6  1440.0   1.567
3    fire2/squeeze1x1                               9.3  1214.8   0.458
4    fire2/expand1x1                                6.2   155.2   0.608
5    fire2/expand3x3                               55.8   476.3   1.783
6    fire3/squeeze1x1                              12.4  1457.4   0.509
7    fire3/expand1x1                                6.2   152.6   0.618
8    fire3/expand3x3                               55.8   478.3   1.776
9    fire4/squeeze1x1                              24.8  1022.0   0.730
10   fire4/expand1x1                               24.8   176.2   1.093
11   fire4/expand3x3                              223.0   389.7   4.450
12   pool4                                          1.7  1257.7   1.174
13   fire5/squeeze1x1                              11.9   780.3   0.476
14   fire5/expand1x1                                6.0   154.0   0.341
15   fire5/expand3x3                               53.7   359.8   1.314
16   fire6/squeeze1x1                              17.9   639.4   0.593
17   fire6/expand1x1                               13.4   159.5   0.531
18   fire6/expand3x3                              120.9   259.7   2.935
19   fire7/squeeze1x1                              26.9   826.1   0.689
20   fire7/expand1x1                               13.4   159.7   0.530
21   fire7/expand3x3                              120.9   255.2   2.987
22   fire8/squeeze1x1                              35.8   727.0   0.799
23   fire8/expand1x1                               23.9   164.0   0.736
24   fire8/expand3x3                              215.0   191.4   5.677
25   pool8                                          0.8  1263.8   0.563
26   fire9/squeeze1x1                              11.1   585.9   0.388
27   fire9/expand1x1                                5.5   154.1   0.340
28   fire9/expand3x3                               49.8   283.2   1.664
29   conv10                                       173.1   335.8   3.400
30   pool10                                         0.3   676.1   0.477
31   prob                                           0.0     9.5   0.200
-----------------------------------------------------------------------
                           Total inference time                   48.34
-----------------------------------------------------------------------
推斷

有了圖文件,我們就可以把它加載到NCS,然后進(jìn)行推斷:

from mvnc import mvncapi as mvnc

## 枚舉設(shè)備
devices = mvnc.EnumerateDevices()

## 打開第一個(gè)NCS
device = mvnc.Device(devices[0])
device.OpenDevice()

## 讀取圖文件
with open("graph", mode="rb") as f:
    graphfile = f.read()

## 加載圖
graph = device.AllocateGraph(graphfile)

圖加載加載完成后,就可以graph.LoadTensor給它一個(gè)輸入,graph.GetResult得到結(jié)果。

# 從攝像頭獲取圖像
ret, frame = cap.read()

# 預(yù)處理
img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (224, 224))
img = preprocess_input(img.astype("float32"))

# 輸入
graph.LoadTensor(img.astype(numpy.float16), "user object")

# 獲取結(jié)果
output, userobj = graph.GetResult()

result = decode_predictions(output.reshape(1, 1000))

識(shí)別出鼠標(biāo):

Kindle和iPod還算相似吧:)

完整的代碼在oraoto/learn_ml/ncs,有MNIST和VGG16的例子。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/19715.html

相關(guān)文章

  • Movidius神經(jīng)計(jì)算棒初體驗(yàn)

    摘要:神經(jīng)計(jì)算棒是個(gè)使用接口的深度學(xué)習(xí)設(shè)備,比盤略大,功耗,浮點(diǎn)性能可達(dá)。這里用了我自己改的才能用模型調(diào)優(yōu)命令可以查看模型中每一層使用的內(nèi)存帶寬算力,模型調(diào)優(yōu)可以以此為參考。 showImg(https://segmentfault.com/img/bV5vGV?w=1920&h=1080); Intel? Movidius? 神經(jīng)計(jì)算棒(NCS)是個(gè)使用USB接口的深度學(xué)習(xí)設(shè)備,比U盤略大...

    BWrong 評(píng)論0 收藏0
  • 邊緣運(yùn)算,一股方興未艾的風(fēng)潮

    摘要:近幾年行動(dòng)通訊人工智能物聯(lián)網(wǎng)及相關(guān)是熱門應(yīng)用,而且未來也展現(xiàn)出萬物皆智能的趨勢。這其中邊緣運(yùn)算也稱邊緣計(jì)算是一股即將興起的風(fēng)潮。甚至應(yīng)用于物聯(lián)網(wǎng)非實(shí)時(shí)性小型傳感器網(wǎng)絡(luò)的智能邊緣運(yùn)算的普通單芯片如系列也可都算是邊緣運(yùn)算。近幾年行動(dòng)通訊、人工智能、物聯(lián)網(wǎng)及相關(guān)是熱門應(yīng)用,而且未來也展現(xiàn)出「萬物皆智能(AIoT = AI + IoT)」的趨勢。不論是家電、交通、零售、虛擬擴(kuò)增實(shí)境(AR/VR/XR...

    terasum 評(píng)論0 收藏0
  • 邊緣智能邊云協(xié)同——2018邊緣計(jì)算產(chǎn)業(yè)峰會(huì)在京盛大召開

    摘要:年月日,以邊緣智能邊云協(xié)同為主題,邊緣計(jì)算產(chǎn)業(yè)峰會(huì)在北京拉開帷幕。截至目前,已完成多個(gè)測試床方案。同時(shí),聯(lián)盟成員華為英特爾中國移動(dòng)等積極參與開源,共同發(fā)起了企業(yè)及,推動(dòng)邊緣計(jì)算產(chǎn)業(yè)發(fā)展。2018年11月29日,以邊緣智能、邊云協(xié)同為主題,2018邊緣計(jì)算產(chǎn)業(yè)峰會(huì)在北京拉開帷幕。此次峰會(huì)由邊緣計(jì)算產(chǎn)業(yè)聯(lián)盟(ECC)主辦,是業(yè)界規(guī)模最大且最具影響力的邊緣計(jì)算產(chǎn)業(yè)峰會(huì),吸引了來自歐洲、美國和中國的...

    Juven 評(píng)論0 收藏0

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<