真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

從零編寫深度學(xué)習推理框架-第一課-前言-創(chuàng)新互聯(lián)

什么是推理框架

視頻鏈接: https://space.bilibili.com/1822828582

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、登封網(wǎng)站維護、網(wǎng)站推廣。

Github 鏈接: https://github.com/zjhellofss/KuiperInfer 歡迎star和PR

請配合視頻課程一起看此教程

深度學(xué)習推理框架用于對已訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)進行預(yù)測.

也就是說,深度學(xué)習推理框架能夠?qū)⑸疃扔?xùn)練框架例如Pytorch,Tensorflow中定義的算法移植到中心側(cè)和端側(cè), 并高效執(zhí)行. 與訓(xùn)練框架不同的是,深度學(xué)習推理框架沒有梯度反向傳播功能, 因為算法模型文件中的權(quán)重系數(shù)已經(jīng)被固化, 推理框架只需要讀取, 加載并完成對輸入數(shù)據(jù)的預(yù)測即可.

項目最終的效果圖

在這里插入圖片描述在這里插入圖片描述

模型加載階段

訓(xùn)練完成的模型被放置在兩個文件中, 一個是模型定義文件, 一個是權(quán)重文件.

模型定義文件和計算圖 模型定義文件

模型由多個節(jié)點的定義和節(jié)點之間的數(shù)據(jù)流圖組成,節(jié)點定義模型中各節(jié)點的參數(shù), 例如在卷積算子中的參數(shù), 包括卷積核的大小, 步長以及輸入輸出特征圖的尺寸大小等.

數(shù)據(jù)流圖闡述了節(jié)點之間數(shù)據(jù)流動的前后順序和依賴關(guān)系. 所有節(jié)點在根據(jù)模型文件中的定義初始化完畢之后, 根據(jù)數(shù)據(jù)流圖對他們進行一一串聯(lián), 形成一個有向無環(huán)圖(DAG), 或稱為計算圖.

但是這個計算圖是缺少權(quán)重的,只是一個外殼, 它只有網(wǎng)絡(luò)的節(jié)點和節(jié)點之間的聯(lián)通關(guān)系. 模型的權(quán)重則保存在權(quán)重文件中, 需要在完成計算圖的初始化之后加載到模型中.
在這里插入圖片描述

權(quán)重文件

在DAG構(gòu)建完成之后, 讀取權(quán)重文件中各節(jié)點的weightbias數(shù)據(jù)并依次填充到對應(yīng)的算子當中. 去填充計算圖(外殼)中的權(quán)重信息.

輸入輸出

輸入指的是由圖片或者視頻幀構(gòu)建而成的RGB數(shù)據(jù),KuiperInfer中數(shù)據(jù)的輸入符合NCHW格式,分別表示批次, 通道和高寬.
輸出指的是模型對于特定的輸入作出的判斷,在下圖中對于云層圖像的輸出,模型給出的預(yù)測為cloud類別,至此推理框架完成了一次預(yù)測過程.

整體流程

在這里插入圖片描述
在這里插入圖片描述

課程大綱
課程節(jié)數(shù)主要內(nèi)容進度課程鏈接
第一次課整體框架解讀和開發(fā)環(huán)境配置完成https://www.bilibili.com/video/BV1HV4y1A7H8/
第二次課張量Tensor類的解析和輸入數(shù)據(jù)的內(nèi)存排布完成https://www.bilibili.com/video/BV1Ed4y1v7Gb/
第三次課CSV文件中初始化張量Tensor一個實例完成https://www.bilibili.com/video/BV1Pg411J7V5/
第四次課手寫第一個算子Relu并完成算子注冊工廠類完成https://www.bilibili.com/video/BV1bG4y1J7sQ/
第五次課Im2col的原理和卷積算子的實現(xiàn)未完成
第六次課照貓畫虎, 完成MaxPooling算子完成https://www.bilibili.com/video/BV1m3411S7yy
第七次課圖結(jié)構(gòu)(PNNX)講解和計算圖初步完成https://www.bilibili.com/video/BV1VW4y1V7vp
第八次課讀取PNNX并構(gòu)建自己的計算圖未完成
第二季課程待敘
近期和遠期的打算
  1. 完成第一季的課程, 共八節(jié)
  2. 根據(jù)第一季的反饋迭代更新第二季的課程, 第二季結(jié)束能完成ResNet 18的推理
  3. 后期可能會出一個關(guān)于模型量化的課程, 在我們自制推理框架的基礎(chǔ)上完成對模型的PTQ量化
本項目的教學(xué)方式
  1. 不會講C++基礎(chǔ), 默認大家都多少懂C++或者C語言
  2. 不會長篇大論地講, 不會手把手地帶著敲( 畢竟不是編程培訓(xùn)班)
  3. 傾向于分模塊講解并以自己動手練習的方式來學(xué)習
第一次課程的內(nèi)容

開發(fā)環(huán)境

  • 開發(fā)語言:C++ 17
  • 數(shù)學(xué)庫:Armadillo OpenBlas
  • 加速庫:OpenMP, 實現(xiàn)算子時候用
  • 單元測試:Google Test
  • 性能測試:Google Benchmark
主項目代碼走讀

主項目地址:https://github.com/zjhellofss/KuiperInfer
Tips: 不要求大家全部掌握, 我會在以后的課程中分模塊的解讀, 歡迎大家點贊 star.

安裝OpenBlas并編譯armadillo

Ubuntu 22.04上armadillo安裝.armadillo本質(zhì)上提供了一個方便的接口, 背后調(diào)用Openblas,
https://arma.sourceforge.net/docs.html. 安裝之前, 使用Linux對應(yīng)發(fā)行版的包管理器安裝必要的組件

apt update
apt install cmake libopenblas-dev liblapack-dev libarpack2-dev libsuperlu-dev
mkdir build
# 在https://arma.sourceforge.net/docs.html下載armadillo數(shù)學(xué)庫的代碼
# cd armadillo文件夾
mkdir build
cd build
cmake ..
make -j8
make install
# 默認情況下armadillo頭文件安裝在:/usr/include/
# 默認情況下armadillo庫文件安裝在:/usr/lib/x86_64-linux-gnu
編譯安裝其他依賴庫

https://github.com/google/glog

glog安裝過程
mkdir build
cd build
cmake ..
make -j8
make install 
# 默認情況下安裝完成后庫文件在:/usr/local/lib/
# 默認情況下安裝完成后頭文件:/usr/local/include/
# 如果發(fā)生庫找不到的問題, 請可以自行試試增加庫尋找路徑, 如果還解決不了請?zhí)砑咏涣魅? 
vim ~/.bashrc 
# 末尾加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
source ~/.bashrc
Google Test編譯安裝過程

https://github.com/google/googletest

gtest安裝過程與glog類似

Tips: 以上兩個庫在安裝完成后, 頭文件位于/usr/local/include/, 庫文件位于/usr/local/lib/.

第一次課程的代碼

https://github.com/zjhellofss/KuiperCourse.git

git clone https://github.com/zjhellofss/KuiperCourse.git 拉取本次課程的代碼
git checkout first 切換分支,第一節(jié)課程在first 這個branch當中
mkdir build
cd build 
cmake ..
make -j8
國內(nèi)git鏡像地址:https://gitee.com/fssssss/KuiperCourse.git
完成第一節(jié)課的作業(yè)

需要注意的問題:armadillo是列主序的.Y=AxX+bias是一個矩陣相乘問題.

armadillo關(guān)于矩陣乘和加的文檔如下: 請按照文檔, 自行編寫test/test_first.cppTEST(test_first, linear)的代碼來完成上述操作,

如果編寫正確則通過單元測試,并輸出Result Passed!.

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當前文章:從零編寫深度學(xué)習推理框架-第一課-前言-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://weahome.cn/article/csehph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部