91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

云創(chuàng)硬見 ? 2019-09-05 14:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

前言

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

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

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

數(shù)據(jù)集準備

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

50,000張圖片作為訓(xùn)練集,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/

模型結(jié)構(gòu)

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

defconvolutional_neural_network(img):#第一個卷積‐池化層conv_pool_1=fluid.nets.simple_img_conv_pool(input=img,#輸入圖像filter_size=5,#濾波器的大小num_filters=20,#filter的數(shù)量。它與輸出的通道相同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為激活函數(shù)的全連接輸出層,10類數(shù)據(jù)輸出10個數(shù)字prediction=fluid.layers.fc(input=conv_pool_3,size=10,act='softmax')returnprediction

訓(xùn)練&驗證

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

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

次,輸出如下:

CPU運行結(jié)果為:預(yù)處理時間為0.0006270000000085929,預(yù)測時間為: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運行結(jié)果為:預(yù)處理時間為0.0006390000000067175,預(yù)測時間為: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上面。

模型導(dǎo)出

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

在Edgeboard上部署模型,完成預(yù)測

1、新建工程文件夾,目錄結(jié)構(gòu)如下(可以仿照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上導(dǎo)出來的模型放置在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文件要預(yù)測的圖像:

6、修改main文件后重復(fù)執(zhí)行預(yù)測,可得結(jié)果如下:圖像處理時間大概為:0.006秒,預(yù)測時間大概為:0.008秒

7、連續(xù)預(yù)測10000次所用時間為:23.7168

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

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

總結(jié)

優(yōu)點:

1. EdgeBoard內(nèi)置的Paddle-Mobile,可以與Paddle訓(xùn)練出來的模型進行較好的對接。

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

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

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

不足:

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

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

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

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


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    國內(nèi)重點工業(yè)物聯(lián)網(wǎng)平臺四廠商分類及選型指南

    的“必選項”! ? 平臺分類 廠商類型 核心優(yōu)勢 核心短板 專業(yè)獨立廠商 技術(shù)能力強,平臺適應(yīng)性廣,工業(yè)模型/數(shù)據(jù)/協(xié)議積累深厚,適配性與通用性突出,可滿足多場景需求 無明顯短板,相對更側(cè)重技術(shù)研發(fā),品牌營銷力度弱于大廠與運營
    的頭像 發(fā)表于 01-13 15:44 ?182次閱讀
    國內(nèi)重點工業(yè)物聯(lián)網(wǎng)平臺四<b class='flag-5'>類</b>廠商<b class='flag-5'>分類</b>及選型指南

    功能測試(一)

    一、測試分類 二、測試模型 三、測試流程 四、測試用
    發(fā)表于 11-20 10:37

    基于級聯(lián)分類器的人臉檢測基本原理

    本次分享的內(nèi)容是基于級聯(lián)分類器的人臉檢測基本原理 1) 人臉檢測概述 關(guān)于人臉檢測算法,目前主流方法分為兩,一是基于知識,主要方法包括模板匹配,人臉特征,形狀和邊緣,紋理特征,顏色特征
    發(fā)表于 10-30 06:14

    如何讓大模型生成你想要的測試用例?

    應(yīng)用大模型生成測試用例,常見的知識庫,測試大模型,微調(diào),RAG等技術(shù)門檻都不低,甚至很難,因此對于應(yīng)用者而言,最快的方式就是應(yīng)用好提示詞,調(diào)教屬于個人風(fēng)格的測試用例智能生成模塊,讓智能
    的頭像 發(fā)表于 09-26 10:01 ?959次閱讀
    如何讓大<b class='flag-5'>模型</b>生成你想要的測<b class='flag-5'>試用</b>例?

    上海控安:基于模型的測試用例生成

    在當今復(fù)雜多變的軟件開發(fā)環(huán)境中,軟件系統(tǒng)的規(guī)模和復(fù)雜度不斷攀升,傳統(tǒng)測試方法面臨著諸多挑戰(zhàn)。如何高效、準確地生成測試用例,以確保軟件系統(tǒng)的質(zhì)量和可靠性,成為軟件測試領(lǐng)域的關(guān)鍵問題之一。而基于模型
    的頭像 發(fā)表于 08-28 14:30 ?863次閱讀
    上??匕玻夯?b class='flag-5'>模型</b>的測<b class='flag-5'>試用</b>例生成

    詳解SPICE器件模型分類

    今天我們來聊聊工程師在仿真時比較關(guān)注的問題。眾多的器件模型,我在仿真的時候到底應(yīng)該怎么選擇一個器件的模型?我使用的這個器件模型的精確度夠嗎?我自己能否做一個器件模型來支持我的電路仿真?
    的頭像 發(fā)表于 08-28 13:42 ?1487次閱讀
    詳解SPICE器件<b class='flag-5'>模型</b>的<b class='flag-5'>分類</b>

    NanoEdge AI生成的模型庫,在keil里面編譯后運行,返回都是0,沒挑出單分類,怎么解決?

    我打算識別具有特定特征的曲線,我按照單分類進行訓(xùn)練。2維數(shù)據(jù),輸入時間序列數(shù)據(jù),得分90+,得到模型后。驗證得分90+,我就在keil里面使用驗證所用的數(shù)據(jù),挑選了一些無特征和有特征的數(shù)據(jù),判斷結(jié)果都返回0。 如何解決呢?
    發(fā)表于 08-12 07:52

    網(wǎng)線面板

    網(wǎng)線面板確實和六,這種分類主要基于其適配的網(wǎng)線類型及傳輸性能,以下是具體說明: 一、分類依據(jù) 適配網(wǎng)線類型 五
    的頭像 發(fā)表于 08-08 09:46 ?4436次閱讀

    超速網(wǎng)線屬于超六網(wǎng)線嗎

    超速網(wǎng)線并非標準術(shù)語,若其指代支持10Gbps傳輸?shù)牧?b class='flag-5'>類改進型網(wǎng)線,則可歸類為超六網(wǎng)線。以下為具體分析: 在網(wǎng)線分類標準中,并不存在“
    的頭像 發(fā)表于 08-05 10:00 ?1271次閱讀

    基于米爾瑞芯微RK3576開發(fā)板部署運行TinyMaix:超輕量級推理框架

    build cd build cmake .. make ./mbnet 運行1000分類,耗費資源如下: param “481,9 KB,0PS13,58 M0PS, buffer 96 0 KB
    發(fā)表于 07-25 16:35

    基于層級的Simulink Test-TPT測試用例轉(zhuǎn)換#Siumlink模型測試 #TPT

    模型
    北匯信息POLELINK
    發(fā)布于 :2025年07月09日 11:15:15

    用一杯咖啡的時間,讀懂AI二分類如何守護工業(yè)質(zhì)量

    您是否想過,工廠里那些"非黑即白"的判斷,正由AI用最簡潔的邏輯守護質(zhì)量?今天,讓我們通過一個零件組裝中的彈墊錯裝、漏裝、多裝、錯序分類案例,拆解AI二分類技術(shù)的核心
    的頭像 發(fā)表于 07-08 07:35 ?838次閱讀
    用一杯咖啡的時間,讀懂AI二<b class='flag-5'>分類</b>如何守護工業(yè)質(zhì)量

    FA模型卡片和Stage模型卡片切換

    卡片切換 卡片切換主要包含如下三部: 卡片頁面布局:FA模型卡片和Stage模型卡片的布局都采用web范式開發(fā)可以直接復(fù)用。 卡片配置文件:FA
    發(fā)表于 06-06 08:10