0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

fireflyNCC S1--PLAI神經(jīng)網(wǎng)絡(luò)量化工具介紹

firefly ? 來源:firefly ? 作者:firefly ? 2019-11-18 14:13 ? 次閱讀
PLAI

PLAI是一個(gè)基于PyTorch的神經(jīng)網(wǎng)絡(luò)量化工具 - 用于將浮點(diǎn)神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換為定點(diǎn) 神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)(給GTI 2801s使用), 或從頭開始訓(xùn)練定點(diǎn)模型。 PLAI使用主機(jī)的CPUGPU進(jìn)行訓(xùn)練,使用GTI NPU USB Dongle進(jìn)行推理驗(yàn)證。

PLAI現(xiàn)支持GNet1、GNet18和GNetfc三種基于VGG-16的模型。

運(yùn)行要求及建議

PLAI運(yùn)行硬件要求如下:

  • Intel i5 3.0 GHz及以上主頻或者更高性能CPU (Intel i7為較佳選擇)
  • 8 GB及以上內(nèi)存
  • 獨(dú)立顯卡6GB及以上顯存,推薦使用GTX 1060及以上顯卡,AMD顯卡不適用。(此項(xiàng)為可選,但強(qiáng)烈推薦,可大大縮短訓(xùn)練時(shí)間)

PLAI最終會(huì)使用USB Dongle進(jìn)行推理測試,如果有則可以進(jìn)行配置使用。

PLAI現(xiàn)支持以下系統(tǒng):

運(yùn)行環(huán)境配置
環(huán)境依賴
  • Python3
  • PyTorch
  • OpenCV
  • CUDA 9.0及以上版本(可選)
Ubuntu

這里以使用Miniconda進(jìn)行環(huán)境配置為例。

安裝過程如下:

ubunut16.04:~$ sudo chmod +x Downloads/Miniconda3-latest-Linux-x86_64.sh ubunut16.04:~$ ./Downloads/Miniconda3-latest-Linux-x86_64.sh Welcome to Miniconda3 4.5.11 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue >>> (回車) ... Do you accept the license terms? [yes|no] [no] >>> yes(回車) ... - Press CTRL-C to abort the installation - Or specify a different location below [/home/firefly/miniconda3] >>> (回車) ... (安裝過程) Do you wish the installer to prepend the Miniconda3 install location to PATH in your /home/firefly/.bashrc ? [yes|no] [no] >>> yes(回車)

以上將Miniconda安裝在用戶根目錄miniconda3下,同時(shí)設(shè)置默認(rèn)使用Miniconda的程序。

可以通過以下操作使Miniconda生效并測試:

ubunut16.04:~$ source ~/.bashrc ubunut16.04:~$ conda -V conda 4.5.11

接著,如果有英偉達(dá)獨(dú)立顯卡加速,可以通過以下操作安裝PyTorch和OpenCV:

ubunut16.04:~$ conda install pytorch torchvision -c pytorch ubunut16.04:~$ pip install opencv-contrib-python

否則,請(qǐng)執(zhí)行以下操作:

ubunut16.04:~$ conda install pytorch-cpu torchvision-cpu -c pytorch ubunut16.04:~$ pip install opencv-contrib-python

如果有顯卡加速可參考此頁面進(jìn)行安裝配置,否則可跳過此步驟。

cuda安裝操作摘抄如下:

ubunut16.04:~$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb ubunut16.04:~$ sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb ubunut16.04:~$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub ubunut16.04:~$ sudo apt-get update ubunut16.04:~$ sudo apt-get install cuda

最后,進(jìn)行USB Dongle配置(可選),可在PLAI目錄下執(zhí)行以下操作配置并驗(yàn)證:

ubunut16.04:~/PLAI$ sudo cp lib/python/gtilib/*.rules /etc/udev/rules.d/ ubunut16.04:~/PLAI$ ls /dev/sg* -l crw-rw-rw- 1 root disk 21, 0 11月 20 10:28 /dev/sg0 crw-rw-rw- 1 root disk 21, 1 11月 20 10:28 /dev/sg1

如果出現(xiàn)未找到設(shè)備的情況請(qǐng)參考常見問題進(jìn)行排查。

Windows 10

待完善…(可部分參考Ubuntu的配置過程)

環(huán)境測試

以下操作可測試環(huán)境完整性,如無錯(cuò)誤,則配置完成。

ubunut16.04:~$ python Python 3.7.0 (default, Jun 28 2018, 13:15:42) [GCC 7.2.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch,cv2 >>> torch.cuda.is_available() True >>>
參數(shù)設(shè)置
training.json文件
  • num_classes - 數(shù)據(jù)集分類個(gè)數(shù),即data/train和data/val中的文件夾(分類)數(shù)
  • max_epoch - 所有訓(xùn)練向量一次用于更新權(quán)重的次數(shù)
  • learning_rate - 確定權(quán)重變化的速度
  • train_batch_size - 根據(jù)GPU內(nèi)存設(shè)置
  • test_batch_size - 根據(jù)GPU內(nèi)存設(shè)置
  • mask_bits - 表示每個(gè)主層(卷積層)的掩碼
  • act_bits - 表示每個(gè)主層(卷積層)的激活參數(shù)
  • resume - 設(shè)置是否從一個(gè)已知的checkpoint中開始訓(xùn)練
  • finetune - 可選項(xiàng), 啟用此項(xiàng)通常能得到更高的精度
  • full - 設(shè)置是否訓(xùn)練一個(gè)全精度模型

mask_bits和act_bits參數(shù)參考如下:

  1. GNetfc
    • mask_bits: 3,3,1,1,1,1
    • act_bits: 5,5,5,5,5,5
  2. GNet18
    • mask_bits: 3,3,3,3,1
    • act_bits: 5,5,5,5,5
  3. GNet1
    • mask_bits: 3,3,1,1,1
    • act_bits: 5,5,5,5,5
PLAI.py參數(shù)

PLAI.py暫不支持命令行參數(shù),需要修改PLAI.py源碼。

通常修改源碼位置大約在142行,原始內(nèi)容如下:

gtiPLAI = PLAI(num_classes=2, data_dir=data_dir, checkpoint_dir=checkpoint_dir, model_type=0, module_type=1, device_type=1)
  • num_classes - 可在training.json中設(shè)置
  • data_dir - 默認(rèn)為data目錄
  • checkpoint_dir - 默認(rèn)為checkpoint目錄
  • model_type - 設(shè)置訓(xùn)練的模型,0: GNetfc, 1: GNet18, 2:GNet1
  • module_type - 0: Conv(w/o bias) + bn + bias,1: Conv(w/ bias) + bn
  • device_type - 用于推理的GTI設(shè)備類型,ftdi: 0, emmc: 1
模型訓(xùn)練

將訓(xùn)練圖片數(shù)據(jù)按類型存放到PLAI data目錄下以類型名命名的文件夾中,然后調(diào)整training.json和修改PLAI.py(默認(rèn)網(wǎng)絡(luò)模型為GNetfc)在PLAI根目錄下執(zhí)行以下操作即可。

ubunut16.04:~$ python PLAI.py
模型使用

訓(xùn)練結(jié)束會(huì)生成coefDat_2801.dat、coefBin_2801.bin(GNetfc沒有此文件)和data/pic_label.txt,如果是GNet1可用到AI資料U盤中的sample中測試。 其中userinput.txt可在PLAI nets目錄下找到,如netConfig_2801_gnet1.txt。使用示例如下:

liteSample -c coefDat_2801.dat -u netConfig_2801_gnet1.txt -f coefBin_2801.bin -l pic_label.txt

測試時(shí)請(qǐng)注意userinput.txt即-u參數(shù)文件中的設(shè)備節(jié)點(diǎn)是否正確。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87889
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34942
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    6930
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)

    MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)說明:本文檔中所列出的函數(shù)適用于MATLAB5.3以上版本,為了簡明起見,只列出了函數(shù)名,若需要進(jìn)一步的說明,請(qǐng)參閱MATLAB的幫助文檔。1. 網(wǎng)絡(luò)創(chuàng)建函數(shù)newp
    發(fā)表于 09-22 16:10

    labview BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)

    請(qǐng)問:我在用labview做BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)故障診斷,在NI官網(wǎng)找到了機(jī)器學(xué)習(xí)工具包(MLT),但是里面沒有關(guān)于這部分VI的幫助文檔,對(duì)于”BP神經(jīng)網(wǎng)絡(luò)分類“這個(gè)范例有很多不懂的地方,比如
    發(fā)表于 02-22 16:08

    神經(jīng)網(wǎng)絡(luò)基本介紹

    神經(jīng)網(wǎng)絡(luò)基本介紹
    發(fā)表于 01-04 13:41

    【PYNQ-Z2試用體驗(yàn)】神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識(shí)

    能在外界信息的基礎(chǔ)上改變內(nèi)部結(jié)構(gòu),是一種自適應(yīng)系統(tǒng),通俗的講就是具備學(xué)習(xí)功能?,F(xiàn)代神經(jīng)網(wǎng)絡(luò)是一種非線性統(tǒng)計(jì)性數(shù)據(jù)建模工具。簡單來說,就是給定輸入,神經(jīng)網(wǎng)絡(luò)經(jīng)過一系列計(jì)算之后,輸出最終結(jié)果。這好比人的大腦
    發(fā)表于 03-03 22:10

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)是一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)包括:輸入層:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的層隱藏層:使用反向傳播優(yōu)化輸入變量權(quán)重的層,以提高模型的預(yù)測
    發(fā)表于 07-12 08:02

    量化神經(jīng)網(wǎng)絡(luò)的相關(guān)資料下載

    原文鏈接:【嵌入式AI部署&基礎(chǔ)網(wǎng)絡(luò)篇】輕量化神經(jīng)網(wǎng)絡(luò)精述--MobileNet V1-3、ShuffleNet V1-2、NasNet深度
    發(fā)表于 12-14 07:35

    卷積神經(jīng)網(wǎng)絡(luò)一維卷積的處理過程

    inference在設(shè)備端上做。嵌入式設(shè)備的特點(diǎn)是算力不強(qiáng)、memory小??梢酝ㄟ^對(duì)神經(jīng)網(wǎng)絡(luò)量化來降load和省memory,但有時(shí)可能memory還吃緊,就需要對(duì)神經(jīng)網(wǎng)絡(luò)在memory使用上做進(jìn)一步優(yōu)化
    發(fā)表于 12-23 06:16

    基于Hopfield神經(jīng)網(wǎng)絡(luò)的圖像矢量量化

    矢量量化是圖像壓縮的重要方法。論文提出了基于Hopfield 神經(jīng)網(wǎng)絡(luò)的圖像矢量量化方法,該方法首先構(gòu)造聚類表格;然后聚類表格按離散Hopfield 神經(jīng)網(wǎng)絡(luò)串行方式運(yùn)行;最后根據(jù)
    發(fā)表于 07-11 08:19 ?19次下載

    神經(jīng)網(wǎng)絡(luò)基本介紹

    神經(jīng)網(wǎng)絡(luò)基本介紹,人工神經(jīng)網(wǎng)絡(luò)(簡稱神經(jīng)網(wǎng)絡(luò),Neural Network)是模擬人腦思維方式的數(shù)學(xué)模型。 神經(jīng)網(wǎng)絡(luò)是在現(xiàn)代生物
    發(fā)表于 12-06 15:07 ?0次下載

    fireflyNCC S1 神經(jīng)網(wǎng)絡(luò)計(jì)算卡簡介

    基于AI專用的APiM架構(gòu),無需外部緩存的模塊化深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)加速器,用于高性能邊緣計(jì)算領(lǐng)域,可作為基于視覺的深度學(xué)習(xí)運(yùn)算和AI算法加速。外形小巧,極低功耗,擁有著強(qiáng)勁算力,配套完整易用的模型訓(xùn)練工具、網(wǎng)絡(luò)訓(xùn)練模型實(shí)例,搭配專
    的頭像 發(fā)表于 11-11 11:04 ?1240次閱讀
    <b class='flag-5'>fireflyNCC</b> <b class='flag-5'>S1</b> <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>計(jì)算卡簡介

    fireflyNCC S1神經(jīng)網(wǎng)絡(luò)計(jì)算卡介紹

    Firefly神經(jīng)網(wǎng)絡(luò)計(jì)算卡是Firefly推出的,配合Firefly開發(fā)板使用的NPU(Neural Processing Unit)模塊。模塊搭載GTI(全稱Gyrfalcon
    的頭像 發(fā)表于 11-18 14:36 ?1829次閱讀
    <b class='flag-5'>fireflyNCC</b> <b class='flag-5'>S1</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>計(jì)算卡<b class='flag-5'>介紹</b>

    12個(gè)將神經(jīng)網(wǎng)絡(luò)畫地更好看的工具

    本文介紹了了12個(gè)將神經(jīng)網(wǎng)絡(luò)畫地更好看的工具。一個(gè)用于畫卷積神經(jīng)網(wǎng)絡(luò)的Python腳本
    的頭像 發(fā)表于 06-13 14:10 ?3641次閱讀
    12個(gè)將<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>畫地更好看的<b class='flag-5'>工具</b>

    神經(jīng)網(wǎng)絡(luò)量化:它是什么,它與TinyML有什么關(guān)系?

    本文將基本了解機(jī)器學(xué)習(xí)背景下的量化,特別是微型機(jī)器學(xué)習(xí)(tinyML)。 主要挑戰(zhàn)tinyML就是怎么拿一個(gè)比較大的 神經(jīng)網(wǎng)絡(luò),有時(shí)約為數(shù)百兆字節(jié),使其適合并在資源受限的微控制器上運(yùn)行,同時(shí)保持最小
    的頭像 發(fā)表于 01-27 16:43 ?3026次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>量化</b>:它是什么,它與TinyML有什么關(guān)系?

    matlab神經(jīng)網(wǎng)絡(luò)工具箱結(jié)果分析

    神經(jīng)網(wǎng)絡(luò)是一種強(qiáng)大的機(jī)器學(xué)習(xí)技術(shù),廣泛應(yīng)用于各種領(lǐng)域,如圖像識(shí)別、語音識(shí)別、自然語言處理等。MATLAB提供了一個(gè)功能強(qiáng)大的神經(jīng)網(wǎng)絡(luò)工具箱,可以幫助用戶快速構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。本文將介紹
    的頭像 發(fā)表于 07-03 10:32 ?347次閱讀

    如何使用MATLAB神經(jīng)網(wǎng)絡(luò)工具

    和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。本文將介紹如何使用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱,以及如何解讀神經(jīng)網(wǎng)絡(luò)的結(jié)果圖。 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱簡介 MATLAB
    的頭像 發(fā)表于 07-03 10:34 ?1325次閱讀