女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用PYNQ訓練和實現BNN

OpenFPGA ? 來源:OpenFPGA ? 2024-08-05 17:15 ? 次閱讀

使用 PYNQ 可以輕松在 FPGA 上實現加速 AI/ML,而無需編寫一行 HDL!讓我們看看如何做到這一點...

image.png

介紹

機器學習是近幾年的熱門話題,有許多用例和應用。Zynq 和 Zynq MPSoC 等異構 SoC 則更具顯著優勢,因為它們允許在可編程邏輯內實現推理網絡。

在 PL 中實現推理網絡可顯著提高性能。當然,對于那些不熟悉機器學習的人來說,很難知道從哪里開始,尤其是如果想使用可編程邏輯來加速性能。

這就是 Pynq 框架的作用所在,它允許我們使用 Python 等更高級的語言,“訪問”可編程邏輯來執行 ML 加速。

對于今天項目,我們將使用適用于 Pynq Z2、Z1 和 Ultra96 的Quantized / Binary Neural Network(BNN)。

該項目的重點是新參數的訓練和應用。

在 PYNQ 上配置 BNN

Pynq 映像啟動后,使用 Web 瀏覽器通過地址http://pynq:9090連接到 Pynq(如果要求輸入密碼,請輸入“xilinx”)

要安裝 BNN,需要使用終端窗口,可以在瀏覽器中通過選擇新建 -> 終端打開一個新的終端

7bca268a-4f14-11ef-b8af-92fbcf53809c.png

我們將使用來自 NTNU 的 Xilinx BNN 存儲庫的 Fork,此 Fork 可以很好地展示如何訓練新網絡。

下載和安裝需要幾秒鐘。

完成后,將看到一個新的 BNN 文件夾,其中有幾個新的notebook。

7bd59254-4f14-11ef-b8af-92fbcf53809c.png7be4f42e-4f14-11ef-b8af-92fbcf53809c.png

LFC - 全連接網絡,專為 28 x 28 灰色圖像輸入而設計

CNV - 專為 RGB 運算設計的卷積網絡,32 x 32 輸入

兩者的結構如下所示。

7be9da02-4f14-11ef-b8af-92fbcf53809c.png7bf11434-4f14-11ef-b8af-92fbcf53809c.png

測試安裝

安裝 BNN 后,下一步是運行一個(或多個)示例以確保安裝可以正常運行。

對于這個例子,決定運行 Road-Signs-Batch。這個notebook使用卷積網絡對路標進行分類。

此notebook僅針對由一個標志組成的小圖像進行測試,之后的測試將使用包含一個標志和其他圖像的大圖像。在這種情況下,算法會檢測標志并對其進行分類。

該算法的第一遍測試會產生幾個潛在的符號候選者,如下所示。

對該初始圖像應用閾值后可正確識別最終的標志上。

當然,我們可以在應用程序中使用我們自己提供的網絡。

訓練自己的網絡

要創建我們自己的網絡,我們需要幾樣東西,其中首先需要的是一組正確標記的訓練數據。在這個例子中,我們將使用 fashion mnist 數據集訓練神經網絡,使其能夠識別服裝。

當我們為覆蓋層構建新網絡時,最重要的是確保我們訓練的網絡與我們希望使用的覆蓋層上的網絡相同。

Xilinx BNN GitHub 提供了一個訓練目錄,其中包含許多可用于創建新網絡的 Python 腳本,許多腳本可以充當模板。

在 BNN github 的 BNN->SRC->Training 目錄下,會發現許多可以幫助訓練新網絡的腳本

其中包括

lfc.py - 描述 LFC 網絡結構

cnv.py - 描述 CNV 網絡結構

binary_net.py-包含許多有助于訓練的函數

finnthesizer.py-執行二進制格式的轉換

mnist.py - 訓練 LFC 網絡進行 mnist 字符識別 - LFC 網絡的良好模板

cifar10.py - 為 cifar 圖像表征網絡訓練 CNV 網絡 - CNV 網絡的良好模板

在這個例子中,將使用 fashion-mnist.py,它是 mnist.py 的改編版,用于訓練 LFC 網絡來檢測和分類服裝。

為了進行此訓練們需要以下東東:

AWS 或高端 GPU

耐心

一旦決定了訓練環境,需要做的第一件事是設置 SW 環境,確保安裝了以下內容。

Python - 包括 NumPy 和 SciPy

Theano - 用于處理多維數組的 Python 庫

PyLearn2——機器學習的 Python 庫

Lasange - 用于構建和訓練神經網絡的 Python 庫

在包含 GPU 的宿主機上使用以下命令:

sudoapt-getinstallgitpython-devlibopenblas-devliblapack-devgfortran-y
wgethttps://bootstrap.pypa.io/get-pip.py&&pythonget-pip.py--user
pipinstall--usergit+https://github.com/Theano/[email protected]
pipinstall--userhttps://github.com/Lasagne/Lasagne/archive/master.zip
pipinstall--usernumpy==1.11.0
gitclonehttps://github.com/lisa-lab/pylearn2$cdpylearn2
pythonsetup.pydevelop--user

安裝軟件環境后,下一步就是下載訓練圖像和標簽

可以使用以下命令下載這些。

wget-nchttp://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz;gunzip-ftrain-images-idx3-ubyte.gz
wget-nchttp://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-labels-idx1-ubyte.gz;gunzip-ftrain-labels-idx1-ubyte.gz
wget-nchttp://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-images-idx3-ubyte.gz;gunzip-ft10k-images-idx3-ubyte.gz
wget-nchttp://fashion-mnist.s3-website.eu-central-1.amazonaws.com/t10k-labels-idx1-ubyte.gz;gunzip-ft10k-labels-idx1-ubyte.gz

這樣我們就可以開始訓練了。

pythonfashion-mnist.py
7c40d438-4f14-11ef-b8af-92fbcf53809c.png7c4f5bde-4f14-11ef-b8af-92fbcf53809c.png7c5cb716-4f14-11ef-b8af-92fbcf53809c.png

訓練完成后,我們將擁有經過訓練的網絡 npz 文件。

7c692f0a-4f14-11ef-b8af-92fbcf53809c.png

使用 WinSCP 將 npz 文件傳輸到 Pynq。

同時將 binary_net、fashino-mnist-gen-binary-weights 和 finnthesizer python 腳本一并上傳。

在 PYNQ 上實現

在 Pynq 上運行新網絡之前,需要將權重轉換為二進制格式。

通過運行下面的 Python 腳本來實現這一點

pythonfashion-mnist-gen-binary-weights.py

這將創建一個包含所有權重的新目錄。

完成后我們就可以開始創建我們自己的notebook。

在 BNN 區域下創建notebook,執行以下操作:

設置根目錄和parameter目錄 - 在parameter目錄中,將找到不同訓練網絡的所有網絡參數。

將 fashion-mnist 生成的權重傳輸到 param 目錄中。不過,只需要在第一次運行此腳本時執行此操作。

7c8a7a48-4f14-11ef-b8af-92fbcf53809c.png

一旦將參數加載到 params 目錄中后,我們就要檢查它們是否可以通過 LFC 網絡的 available_params 函數訪問。

如果安裝正確,還應顯示 fashion-mnist-lfc 以及最初的兩個網絡。

最后階段是使用參數運行推理。為此,我們需要加載圖像,將其轉換為 mnist 圖像格式并將其應用到網絡。

然后我們可以輸出推理的結果并顯示圖像以查看預測是否正確。

image.png

正如所看到的,它從圖像輸入中正確地識別出了一條褲子。

為了了解網絡的總體準確度,我們可以下載并運行 10K 張標記圖像。

7ca2968c-4f14-11ef-b8af-92fbcf53809c.png

然后我們可以批量處理圖像并計算網絡的整體準確度。

7cb0b726-4f14-11ef-b8af-92fbcf53809c.png

這相當于準確率略低于 85%,在線搜索時準確率為 84.87%,與其他fashion-MNIST 準確率相比,這略低于其他的,其他實現的準確率在 88-92% 范圍內,具體取決于網絡。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1643

    文章

    21963

    瀏覽量

    614108
  • 機器學習
    +關注

    關注

    66

    文章

    8492

    瀏覽量

    134091
  • BNN
    BNN
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2708
  • PYNQ
    +關注

    關注

    4

    文章

    62

    瀏覽量

    3047

原文標題:使用 PYNQ 訓練和實現 BNN

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于DPU-PYNQ實現石頭剪刀布的手勢識別

    簡介 本案例主要基于DPU-PYNQ實現一個常見的手勢識別--石頭剪刀布,目的是讓大家了解如何使用DPU開發深度學習應用的整個流程。本案例分為三個部分:分別是PC模型訓練、VitisAI模型編譯
    的頭像 發表于 09-29 11:00 ?5207次閱讀

    PYNQ項目——Pynq開發板啟動實驗

    作者:Mculover666 今天剛剛到手一塊PYNQ-Z2,確認過眼神,是我想要的板子,話不多說,開干。 ? ? PYNQ項目是一個支持Xilinx Zynq器件的開源軟件框架,目的在于借助
    的頭像 發表于 12-23 10:58 ?4149次閱讀

    基于PYNQ-Z2開發板的PYNQ開源項目

    PYNQ項目是一個新的開源框架,使嵌入式編程人員在無需設計可編程邏輯電路的情況下充分發揮Xilinx Zynq All Programmable SoC(APSoC)的功能。 與常規方式
    的頭像 發表于 01-02 09:02 ?6859次閱讀
    基于<b class='flag-5'>PYNQ</b>-Z2開發板的<b class='flag-5'>PYNQ</b>開源項目

    PYNQ-Z2申請】基于PYNQ的神經網絡自動駕駛小車

    作品簡介這次試用PYNQ-Z2作品“基于PYNQ平臺的神經網絡自動駕駛小車”,在PYNQ平臺上對車載攝像頭圖像高速采集、預處理,并在FPGA上搭建神經網絡,使用圖像輸入生成小車運動的控制信號,
    發表于 12-19 11:36

    PYNQ-Z2申請】基于PYNQ的卷積神經網絡加速

    項目名稱:基于PYNQ的卷積神經網絡加速試用計劃:申請理由:本人研究生在讀,想要利用PYNQ深入探索卷積神經網絡的硬件加速,在PYNQ實現圖像的快速處理項目計劃:1、在PC端
    發表于 12-19 11:37

    PYNQ-Z2申請】基于pynq的語音識別和新聞報道系統

    項目名稱:基于pynq的語音識別和新聞報道系統試用計劃:申請理由本人在Zynq如那件無線電方向有三年多的學習和開發經驗,曾設計過基于ZYNQ 7020的頻譜監測和室內定位平臺,對DMA高速接口
    發表于 12-19 11:38

    PYNQ-Z2試用體驗】玩轉PYNQ系列:一、板卡簡介與資源整理

    /video_20170828_jxus4q5wb5tsm.rar?attname=PYNQ-Z1中文入門指導手冊及示例程序.rar)社區資源整理:1.「機器學習:如何在PYNQ-Z1上搭建開源二值神經網絡BNN」(http
    發表于 12-31 10:53

    PYNQ-Z2申請】基于PYNQ-Z2的神經網絡圖形識別

    對神經網絡的學習,講解其工作原理。4.基于PYNQ-Z2,用python實現一個神經網絡。5.訓練和測試神經網絡,完成神經網絡最經典的入門實驗--手寫數字識別。6.如時間充足,會利用板子上
    發表于 01-09 14:48

    PYNQ-Z2試用體驗】玩轉PYNQ系列:三、PYNQ數字圖像處理之圖像采集

    PL中,修改原框架布局,在HDMI數據流中插入自定義視頻處理IP。 由于在實現難度上第一種方式相對簡單,我們由淺入深,先學習使用Python調用PYNQ的HDMI圖像接口的操作。PYNQ官方系統中,為
    發表于 01-28 22:50

    PYNQ-Z2試用體驗】基于PYNQ的神經網絡自動駕駛小車 - 項目規劃

    的數篇帖子里,我會圍繞“基于PYNQ的神經網絡自動駕駛小車”項目,對整個項目的實現進行詳解,相信有電子設計基礎的網友們也可以很容易進行復現,制作并訓練一輛屬于自己的自動駕駛小車。 一、作品背景如今
    發表于 03-02 23:10

    什么是PYNQ?

    什么是PYNQ?PYNQ就是通過Python語言直接對FPGA進行編程嗎?PYNQPYNQ-Z2是一回事嗎?PYNQ-Z2是否支持傳統開發
    發表于 02-24 07:02

    PYNQ開源方案

    板卡購買:Digilent(迪芝倫)PYNQ目錄微信公眾號:PYNQ開源社區百度/CSDN博客BilibiliGitHub/ Gitee(開源項目)Xilinx官方代碼庫PYNQ官網中國
    發表于 08-04 08:29

    PYNQ的常見問題

    PYNQ框架的設計初衷是通過高層次的封裝,將底層硬件FPGA實現細節與上層應用層的使用脫耦,對軟件開發者來說,PYNQ框架已經提供了完整的訪問FPGA資源的library,讓上層應用開發者通過
    發表于 01-29 06:31 ?8次下載
    <b class='flag-5'>PYNQ</b>的常見問題

    基于Pynq的汽車儀表板

    電子發燒友網站提供《基于Pynq的汽車儀表板.zip》資料免費下載
    發表于 12-20 09:25 ?1次下載
    基于<b class='flag-5'>Pynq</b>的汽車儀表板

    使用Tensil和PYNQPYNQ Z1 FPGA板上運行機器學習

    電子發燒友網站提供《使用Tensil和PYNQPYNQ Z1 FPGA板上運行機器學習.zip》資料免費下載
    發表于 06-14 11:44 ?0次下載
    使用Tensil和<b class='flag-5'>PYNQ</b>在<b class='flag-5'>PYNQ</b> Z1 FPGA板上運行機器學習