在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

Edgeboard試用—基于CIFAR10分類模型的移植

云創硬見 ? 2019-09-05 14:15 ? 次閱讀

摘要:前言 在上一周的測試中,我們按照官方給的流程,使用EasyDL快速實現了一個具有性別檢測功能的人臉識別系統,那么 今天,我們將要試一下通過Paddlepaddle從零開始,訓練一個自己的多分類模型,并進行嵌入式部署。 整個訓練 過程和模型在:https://aistudio.baidu.com/aistudio/projectDetail/61103 下面詳細介紹模型訓練...

前言

在上一周的測試中,我們按照官方給的流程,使用EasyDL快速實現了一個具有性別檢測功能的人臉識別系統,那么

今天,我們將要試一下通過Paddlepaddle從零開始,訓練一個自己的多分類模型,并進行嵌入式部署。 整個訓練

過程和模型在:https://aistudio.baidu.com/aistudio/projectDetail/61103 下面詳細介紹模型訓練的過程.

數據集準備

我們使用CIFAR10數據集。CIFAR10數據集包含60,000張32x32的彩色圖片,10個類別,每個類包含6,000張。其中

50,000張圖片作為訓練集,10000張作為驗證集。

!mkdir‐p/home/aistudio/.cache/paddle/dataset/cifar#wget將下載的文件存放到指定的文件夾下,同時重命名下載的文件,利用‐O!wget"http://ai‐atest.bj.bcebos.com/cifar‐10‐python.tar.gz"‐Ocifar‐10‐python.tar.gz!mvcifar‐10‐python.tar.gz/home/aistudio/.cache/paddle/dataset/cifar/

模型結構

我們選擇了以三個卷積層串聯一個全連接層的輸出,作為貓狗分類的預測,采用固定維度輸入,輸出為分類數

defconvolutional_neural_network(img):#第一個卷積‐池化層conv_pool_1=fluid.nets.simple_img_conv_pool(input=img,#輸入圖像filter_size=5,#濾波器的大小num_filters=20,#filter的數量。它與輸出的通道相同pool_size=2,#池化層大小2*2pool_stride=2,#池化層步長act="relu")#激活類型#第二個卷積‐池化層conv_pool_2=fluid.nets.simple_img_conv_pool(input=conv_pool_1,filter_size=5,num_filters=50,pool_size=2,pool_stride=2,act="relu")#第三個卷積‐池化層conv_pool_3=fluid.nets.simple_img_conv_pool(input=conv_pool_2,filter_size=5,num_filters=50,pool_size=2,pool_stride=2,act="relu")#以softmax為激活函數的全連接輸出層,10類數據輸出10個數字prediction=fluid.layers.fc(input=conv_pool_3,size=10,act='softmax')returnprediction

訓練&驗證

接下來在Paddlepaddle fluid上,進行訓練。整個訓練代碼見附件train.py 模型驗證,采用附件predict.py的代碼進

行驗證與運行時間的測量,選取一張狗的圖:dog.jpg (可以fork首頁鏈接aistudio平臺上的demo) 連續預測10000

次,輸出如下:

CPU運行結果為:預處理時間為0.0006270000000085929,預測時間為:16.246494Out:im_shape的維度:(1,3,32,32)Theruntimeofimageprocessis0.0006270000000085929Theruntimeofpredictis16.246494results[array([[5.0159363e‐04,3.5942634e‐05,2.5955746e‐02,4.7745958e‐02,9.9251214e‐03,9.0146154e‐01,1.9564393e‐03,1.2230080e‐02,4.7619540e‐08,1.8753216e‐04]],dtype=float32)]inferresults:dog
GPUV100運行結果為:預處理時間為0.0006390000000067175,預測時間為:15.903074000000018Out:im_shape的維度:(1,3,32,32)Theruntimeofimageprocessis0.0006390000000067175Theruntimeofpredictis15.903074000000018results[array([[5.0159392e‐04,3.5942641e‐05,2.5955772e‐02,4.7746032e‐02,9.9251205e‐03,9.0146142e‐01,1.9564414e‐03,1.2230078e‐02,4.7619821e‐08,1.8753250e‐04]],dtype=float32)]inferresults:dog

可以看到,模型可以正確的識別出圖片中的動物為狗,接下來,我們就要嘗試將這個模型部署到Edgeboard上面。

模型導出

我們需要將模型保存為模型文件model以及權重文件params,可以采用如下Paddle的API進行保存如圖所示,在AiStudio的左側打開模型文件所在的文件夾,下載mlp-model、mlp-params兩個文件。

在Edgeboard上部署模型,完成預測

1、新建工程文件夾,目錄結構如下(可以仿照sample里的resnet、inception例程):

‐sample_image_catdog‐build‐image‐include‐paddlepaddle‐mobile‐...‐lib‐libpaddle‐mobile.so‐model‐mlp‐model‐params‐src‐fpga_cv.cpp‐main.cpp

2、將AiStudio上導出來的模型放置在model里的mlp文件夾,修改名字為model、params

3、新建 CMakeLists.txt

cmake_minimum_required(VERSION3.5.1)project(paddle_edgeboard)set(CMAKE_CXX_STANDARD14)set(CMAKE_EXE_LINKER_FLAGS"${CMAKE_EXE_LINKER_FLAGS}‐pthread")add_definitions(‐DPADDLE_MOBILE_FPGA_V1)add_definitions(‐DPADDLE_MOBILE_FPGA)set(PADDLE_LIB_DIR"${PROJECT_SOURCE_DIR}/lib")set(EASYDL_INCLUDE_DIR"${PROJECT_SOURCE_DIR}/include")set(PADDLE_INCLUDE_DIR"${PROJECT_SOURCE_DIR}/include/paddle‐mobile")set(APP_NAME"paddle_edgeboard")aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/srcSRC)find_package(OpenCVQUIETCOMPONENTScorevideoiohighguiimgprocimgcodecsmlvideo)include_directories(SYSTEM${OpenCV_INCLUDE_DIRS})#list(APPENDCaffe_LINKER_LIBS${OpenCV_LIBS})message(STATUS"OpenCVfound(${OpenCV_CONFIG_PATH}),${OpenCV_LIBS}")#add_definitions(‐DUSE_OPENCV)include_directories(${EASYDL_INCLUDE_DIR})include_directories(${PADDLE_INCLUDE_DIR})LINK_DIRECTORIES(${PADDLE_LIB_DIR})add_executable(${APP_NAME}${SRC})target_link_libraries(${APP_NAME}paddle‐mobile)target_link_libraries(${APP_NAME}${OpenCV_LIBS})

4、main.cpp

#include#include"io/paddle_inference_api.h"#include"math.h"#include#include#include#include#include#include#include#include#include#include#include"fpga/KD/float16.hpp"#include"fpga/KD/llapi/zynqmp_api.h"usingnamespacepaddle_mobile;#include#includeusingnamespacecv;cv::Matsample_float;staticstd::vectorlabel_list(10);voidreadImage(std::stringfilename,float*buffer){Matimg=imread(filename);if(img.empty()){std::cerr<(config);std::cout<({1,3,32,32});tensor.data=PaddleBuf(data,sizeof(data));tensor.dtype=PaddleDType::FLOAT32;std::vectorpaddle_tensor_feeds(1,tensor);PaddleTensortensor_out;tensor_out.shape=std::vector({});tensor_out.data=PaddleBuf();tensor_out.dtype=PaddleDType::FLOAT32;std::vectoroutputs(1,tensor_out);std::cout<Run(paddle_tensor_feeds,&outputs);std::cout<(outputs[0].data.data());for(size_tj=0;jmax){max=val>max?val:max;iindex=i;}}label_list={"airplane","automobile","bird","cat","deer","dog","frog","horse","ship","truck"};std::cout<

5、編譯運行

insmod/home/root/workspace/driver/fpgadrv.kocd/home/root/workspace/sample/sample_image_catdogmkdirbuildcdbuildrm‐rf*cmake..make./paddle_edgeboard

修改main文件要預測的圖像:

6、修改main文件后重復執行預測,可得結果如下:圖像處理時間大概為:0.006秒,預測時間大概為:0.008秒

7、連續預測10000次所用時間為:23.7168

性能對比(連續預測10000次 單位:秒)

平臺前處理耗時模型預測耗時
Edgeboard0.00623.7168
CPU(AISTUDIO平臺雙核8G)0.00062716.2464
GPU(AISTUDIO平臺雙核8G+GPU V100 16GB)0.00063915.9030

總結

優點:

1. EdgeBoard內置的Paddle-Mobile,可以與Paddle訓練出來的模型進行較好的對接。

2. 預測速度上: Edge在預測小模型的時候,能與雙核CPU和GPU在一個數量級,估計是模型較小,batch size也

為1,gpu,cpu的性能優勢抵不過通信的開銷,后續將進行大模型、高batch size的測試。

3. 提供的demo也足夠簡單,修改起來難度很低。

不足:

1. Paddle-Mobile相關文檔具有一定門檻,且較為分散。初次使用的時候會走一些彎路出現問題的時候往往是個

黑盒,不易于定位。在這次進行模型訓練的嘗試中,出現過一次op不支持的情況,我們在官網上甚至沒有找

到支持的op列表,這個在開發哥們的支持下升級版本后解決。如果后續能在穩定的固件版本下使用,并有比

較易用的sdk,開發門檻可能會進一步降低。


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

    評論

    相關推薦

    基于Label CIFAR10 image on FRDM-MCXN947例程實現鞋和帽子的識別

    NXP FRDM-MCXN947: 物體識別 ? ? 感謝這次評測活動,收到FRDM-MCXN947的板子。NXP官方提供了很多視覺識別的例程,今天我們就基于Label CIFAR10 image
    的頭像 發表于 01-13 09:18 ?77次閱讀
    基于Label <b class='flag-5'>CIFAR10</b> image on FRDM-MCXN947例程實現鞋和帽子的識別

    【RA8D1試用活動】RA8D1B-CPKCOR開發板移植linux

    【RA8D1試用活動】RA8D1B-CPKCOR開發板移植linux
    的頭像 發表于 11-16 01:02 ?279次閱讀
    【RA8D1<b class='flag-5'>試用</b>活動】RA8D1B-CPKCOR開發板<b class='flag-5'>移植</b>linux

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測

    : NPU幫助機器完成更高效的翻譯、文本分類和情感分析,推動了自然語言處理技術的發展。 實例分享:Yolov5分類檢測 在RK3588處理器上,不僅可以基于Linux系統使用NPU,也可以
    發表于 10-24 10:13

    【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列

    對比、外設及性能對比以及從 STM32F10x 移植到 GD32F30x 的移植步驟,旨在讓開發者能夠快速從STM32F10x 移植到 GD
    的頭像 發表于 09-07 09:57 ?895次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】9、從 STM32F<b class='flag-5'>10</b>x 系列<b class='flag-5'>移植</b>到 GD32F30x 系列

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子
    的頭像 發表于 08-23 14:58 ?790次閱讀
    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5<b class='flag-5'>分類</b>檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測

    : NPU幫助機器完成更高效的翻譯、文本分類和情感分析,推動了自然語言處理技術的發展。 實例分享:Yolov5分類檢測 在RK3588處理器上,不僅可以基于Linux系統使用NPU,也可以
    發表于 08-20 11:13

    國產芯上運行TinyMaxi輕量級的神經網絡推理庫-米爾基于芯馳D9國產商顯板

    使用 make 命令構建系統,生成可執行文件 運行可執行文件,執行效果如下 MBNET 示例運行輸入了一張 96×96×3 的 RGB 圖像,輸出 1000 分類,共消耗了 16.615 毫秒 運行cifar10 demo
    發表于 08-09 18:26

    國產芯上運行TinyMaxi輕量級的神經網絡推理庫-米爾基于芯馳D9國產商顯板

    如下 MBNET 示例運行輸入了一張 96×96×3 的 RGB 圖像,輸出 1000 分類,共消耗了 16.615 毫秒 運行cifar10 demo
    發表于 08-07 18:06

    lpm模型里的zi是什么

    個關鍵的參數,用于表示個體特征或協變量。 LPM模型的基本概念 2.1 Logit模型 Logit模型是一種用于分析二分類問題的概率模型。在
    的頭像 發表于 07-09 10:09 ?506次閱讀

    人工智能神經網絡模型有哪些

    Rosenblatt在1957年提出。感知機是一個二分類模型,它通過一組權重和偏置來計算輸入特征的線性組合,然后通過一個激活函數(通常是符號函數或階躍函數)來決定輸出。 多層感知機(Multilayer Perceptron, MLP) : 多層感知機是感知機的擴展,它
    的頭像 發表于 07-04 09:41 ?677次閱讀

    基于神經網絡的呼吸音分類算法

    出的方法與其他機器學習模型在不同情況下的性能和魯棒性進行比較。1.用于初始模型檢查的簡單噪聲二值分類實驗。2.使用個體呼吸周期作為輸入的4異常分類
    發表于 05-31 12:05

    百度大腦EdgeBoard介紹

    對于開發者而言,EdgeBoard是一款面向各個層次的AI開發者的硬件平臺,可以直接運載神經網絡模型,提供強大的運行算力,并具備模型剪枝和量化加速的功能。它具備強大的計算能力和靈活的擴展性,可以支持
    的頭像 發表于 05-15 09:50 ?560次閱讀
    百度大腦<b class='flag-5'>EdgeBoard</b>介紹

    【大語言模型:原理與工程實踐】大語言模型的評測

    和產品化提供了有力的數據支持。 對于生活閑聊評測任務,模型的回答主要從人性化程度、內容質量和社交適應性三個方面進行考察。這些方面共同反映了模型在日常對話中的自然度、流暢度和應變能力。而方法論指導
    發表于 05-07 17:12

    PTCRB的測試用認證等級分類介紹

    PTCRB的測試用認證等級CategoryA/B/EA類項:測試用例在商用系統上經過完全驗證;必測項且需要結果為PASSB類項:測試用例在商用系統上經過部分驗證(標準或系統有缺陷);
    的頭像 發表于 03-14 16:46 ?427次閱讀
    PTCRB的測<b class='flag-5'>試用</b><b class='flag-5'>類</b>認證等級<b class='flag-5'>分類</b>介紹

    基于分類樹構建代碼動態測試用例(VCT)#代碼動態測試

    代碼分類
    北匯信息POLELINK
    發布于 :2024年01月27日 15:29:34
    主站蜘蛛池模板: 国产69久久精品成人看| 久久精品久噜噜噜久久| 男男浪荡双性受hplay| 日本免费不卡在线一区二区三区| 亚洲视频在线一区二区三区| 免费伦费一区二区三区四区| 流不尽奶水的大乳h| 一色屋成人免费精品网站| 亚洲天堂手机在线| 一区二区在线免费视频| 亚洲视频在线观看一区| 天天干天天操天天玩| 国产高清成人mv在线观看| 国产亚洲精品仙踪林在线播放 | 一区二区在线看| 国产婷婷| 五月情视频在线观看| 成人国产三级精品| 亚洲特级毛片| 日韩毛片在线视频| 四虎国产欧美成人影院| 日本欧美一级| 国产亚洲人成网站天堂岛| 夜夜综合网| 好吊色37pao在线观看| japan日韩xxxx69hd| 在线网址你懂的| 狠狠色噜噜狠狠狠狠97不卡| 亚洲成熟人网站| 亚洲三级在线看| 日韩高清特级特黄毛片| 国产乱人视频在线看| 天天视频免费入口| 婷婷色九月综合激情丁香| 日本wwwhdsex69| 男男失禁play 把尿bl| 天堂va| 久久免费视频网站| 亚洲va欧美va国产综合久久| 99久久精品99999久久| 欧美zo|