深度學(xué)習(xí)嵌入式應(yīng)用開發(fā):基于RK3399Pro和RK3588
定 價:99 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:王曰海 著
- 出版時間:2022/11/1
- ISBN:9787111715757
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP332
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
這是一本講解如何基于當(dāng)前主流的智能芯片RK3399Pro與RK3588進(jìn)行端側(cè)智能開發(fā)的著作,它將指導(dǎo)讀者如何基于這兩款芯片進(jìn)行算法的設(shè)計與實施,瑞芯微官方推薦。理論部分,以深度學(xué)習(xí)為主線,針對零基礎(chǔ)的讀者,不僅講解了卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等深度神經(jīng)網(wǎng)絡(luò)的原理以及它們在計算機(jī)視覺、自然語言處理、語音識別等領(lǐng)域的經(jīng)典算法,還講解了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和模型優(yōu)化。實踐部分,以基于RK3399Pro與RK3588兩款智能芯片的端側(cè)智能開發(fā)為主線,講解了芯片的功能架構(gòu)、開發(fā)板及其開發(fā)環(huán)境、Rock-X API組件庫,以及基于它們的各種端側(cè)智能應(yīng)用開發(fā),包括各種神經(jīng)網(wǎng)絡(luò)的開發(fā)、神經(jīng)網(wǎng)絡(luò)的運(yùn)算加速等,讓讀者掌握深度學(xué)習(xí)模型從設(shè)計、訓(xùn)練、優(yōu)化到端側(cè)部署的完整流程,快速學(xué)會人工智能應(yīng)用的開發(fā)。
未來的社會是智能的社會,智能體現(xiàn)在各種終端中,終端的智能需要算法和算力的結(jié)合,本書正是圍繞人工智能算法的落地應(yīng)用展開。在人工智能算法部分,本書更加關(guān)注算法的具體實現(xiàn),算法的嵌入式落地以豐富的實踐案例展示了瑞芯微人工智能芯片的加速能力,希望能夠?qū)η度胧街悄苈涞貞?yīng)用開發(fā)提供幫助。——史治國 浙江大學(xué)信息與電子工程學(xué)院副院長 在當(dāng)前的人工智能浪潮下,各類算法越來越需要落地到各種應(yīng)用場景中,這都離不開芯片的加速支持。瑞芯微3399Pro和3588是業(yè)界主流的人工智能芯片,其RKNN人工智能開發(fā)庫易于上手,結(jié)合芯片進(jìn)行算法的設(shè)計實施是本書的主旨。本書在介紹人工智能算法基本原理的基礎(chǔ)上,重點介紹了芯片的加速庫和豐富的應(yīng)用案例,為相關(guān)智能產(chǎn)品的開發(fā)提供了較好的引導(dǎo)。——林崢源 瑞芯微電子股份有限公司副總裁 在過去的十年里,云計算成功地緩解了日益增長的數(shù)據(jù)所帶來的存儲、管理等問題,但不能滿足對響應(yīng)時間和安全性的高要求,這對嵌入式人工智能發(fā)起了挑戰(zhàn)。本書理論結(jié)合實踐,講述了深度學(xué)習(xí)模型從設(shè)計、訓(xùn)練、優(yōu)化到端側(cè)部署的完整過程,實屬難能可貴。——劉盼盼 某芯片大廠資深系統(tǒng)架構(gòu)師
近年來,人工智能如火如荼地發(fā)展,并在計算機(jī)視覺、自然語言處理等諸多應(yīng)用領(lǐng)域取得顯著成果。人工智能的發(fā)展依賴于深度學(xué)習(xí)算法、高質(zhì)量大數(shù)據(jù)和高性能計算三大要素。在初始階段,人工智能的開發(fā)和應(yīng)用主要集中在云端,通常通過服務(wù)器進(jìn)行算法部署。但是云側(cè)智能存在數(shù)據(jù)安全、隱私保護(hù)等問題,服務(wù)器部署在實際應(yīng)用場景中也存在成本高、便捷性差等缺點。同時,隨著越來越多的開發(fā)者從事人工智能開發(fā),構(gòu)建更低成本、更便捷、更開放的人工智能開發(fā)平臺和生態(tài)變得十分迫切。
因此,人們開始研究和探索能否將人工智能算法與應(yīng)用部署在終端。但是終端CPU的算力和功耗指標(biāo)通常無法滿足人工智能應(yīng)用的需求。隨著人工智能芯片的研發(fā)成功,搭載人工智能芯片的嵌入式神經(jīng)網(wǎng)絡(luò)處理器(NPU)能夠以低功耗進(jìn)行高速運(yùn)算,于是端側(cè)智能得以迅速發(fā)展并形成一個繁榮的應(yīng)用生態(tài)。端側(cè)智能將人工智能算法和應(yīng)用部署在手機(jī)、嵌入式設(shè)備等端側(cè)設(shè)備上。相比云側(cè)智能,使用NPU來進(jìn)行人工智能運(yùn)算具有更好地保護(hù)數(shù)據(jù)隱私、更低時延、便于部署、節(jié)省計算資源等優(yōu)勢。對于開發(fā)者來講,端側(cè)智能更加易于上手,成本更低,因此越來越多的開發(fā)者加入端側(cè)智能開發(fā)隊伍并合力構(gòu)建其生態(tài)。英特爾、蘋果等公司紛紛在端側(cè)智能設(shè)備上發(fā)力,國內(nèi)也涌現(xiàn)出諸如華為昇騰、瑞芯微RK3399Pro及RK3588等優(yōu)秀的端側(cè)人工智能芯片。
優(yōu)秀的端側(cè)人工智能設(shè)備,除了需要有具備強(qiáng)大算力的NPU外,還需要能夠支持主流的深度學(xué)習(xí)框架,擁有功能豐富的開發(fā)工具和豐富的開發(fā)案例。我在科研、教學(xué)與生產(chǎn)中了解和使用了瑞芯微推出的高性能人工智能開發(fā)板TB-RK3399Pro和TB-RK3588X,這兩個開發(fā)板集軟硬件開發(fā)于一體:在硬件方面擁有同類芯片領(lǐng)先的、具備強(qiáng)大算力的NPU,同時集成了CPU、GPU、VPU、RGA等單元;在軟件方面支持Caffe、TensorFlow、PyTorch等深度學(xué)習(xí)框架,同時擁有RKNN-Toolkit開發(fā)工具,支持模型轉(zhuǎn)換、模型量化、算子開發(fā)、模型可視化等功能,還擁有豐富的人工智能教學(xué)案例和開源社區(qū)。
在RK3399Pro的發(fā)展和使用過程中,社區(qū)積累了豐富的案例和資源,因此我萌生了基于RK3399Pro介紹深度學(xué)習(xí)和端側(cè)人工智能開發(fā)的想法。我注意到:市面上的深度學(xué)習(xí)圖書大多側(cè)重于介紹基本概念和原理,缺少實踐和案例;而介紹端側(cè)人工智能開發(fā)平臺的圖書大多類似于用戶手冊或?qū)嶒炇謨,往往只告訴用戶如何操作,缺乏對背后原理的講解。因此我想結(jié)合深度學(xué)習(xí)的基本原理,基于RK3399Pro的深度學(xué)習(xí)實踐,將理論和實踐結(jié)合起來,寫一本集算法知識、趣味性和實踐于一體的圖書,讓深度學(xué)習(xí)的入門者、RK3399Pro的開發(fā)者深入地了解深度學(xué)習(xí)和端側(cè)人工智能。
前言
第1章 深度學(xué)習(xí)基礎(chǔ) 1
1.1 深度學(xué)習(xí)的現(xiàn)實應(yīng)用 2
1.1.1 計算機(jī)視覺 2
1.1.2 自然語言處理 2
1.1.3 推薦系統(tǒng) 3
1.1.4 語音處理 3
1.1.5 其他領(lǐng)域 3
1.2 回歸問題和分類問題 4
1.2.1 線性回歸 5
1.2.2 Softmax分類 6
1.3 梯度下降算法 8
1.3.1 優(yōu)化算法概述 8
1.3.2 隨機(jī)梯度下降算法 10
1.3.3 小批量梯度下降算法 13
1.3.4 Momentum梯度下降
算法 14
1.3.5 Adam優(yōu)化算法 15
1.4 神經(jīng)網(wǎng)絡(luò) 16
1.4.1 神經(jīng)網(wǎng)絡(luò)的表示 16
1.4.2 激活函數(shù)及其導(dǎo)數(shù) 19
1.4.3 前向傳播和反向傳播 23
1.4.4 神經(jīng)網(wǎng)絡(luò)的梯度下降 26
1.5 本章小結(jié) 27
第2章 卷積神經(jīng)網(wǎng)絡(luò) 28
2.1 卷積基礎(chǔ)知識 28
2.1.1 卷積操作 29
2.1.2 池化 33
2.1.3 卷積的變種 34
2.2 深度卷積神經(jīng)網(wǎng)絡(luò) 37
2.2.1 卷積神經(jīng)網(wǎng)絡(luò)的整體
結(jié)構(gòu) 37
2.2.2 殘差結(jié)構(gòu)和1×1卷積 38
2.2.3 經(jīng)典卷積網(wǎng)絡(luò) 41
2.3 卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用 44
2.3.1 圖像分類 44
2.3.2 目標(biāo)檢測 45
2.3.3 其他應(yīng)用 49
2.4 本章小結(jié) 49
第3章 循環(huán)神經(jīng)網(wǎng)絡(luò) 50
3.1 深度循環(huán)神經(jīng)網(wǎng)絡(luò) 50
3.1.1 循環(huán)神經(jīng)網(wǎng)絡(luò)概述 51
3.1.2 基于時間的反向傳播 52
3.1.3 循環(huán)神經(jīng)網(wǎng)絡(luò)的長期依賴
問題 54
3.2 循環(huán)神經(jīng)網(wǎng)絡(luò)變體 55
3.2.1 長短時記憶網(wǎng)絡(luò) 55
3.2.2 門控循環(huán)神經(jīng)網(wǎng)絡(luò) 60
3.3 序列模型和注意力機(jī)制 61
3.3.1 Seq2Seq序列模型 62
3.3.2 注意力機(jī)制 64
3.3.3 Transformer結(jié)構(gòu) 69
3.4 循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用 74
3.4.1 自然語言處理 74
3.4.2 語音識別 84
3.4.3 喚醒詞檢測 87
3.5 本章小結(jié) 88
第4章 深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練 90
4.1 深度學(xué)習(xí)的學(xué)習(xí)策略 90
4.1.1 數(shù)據(jù)集劃分和評估指標(biāo) 90
4.1.2 偏差、方差和誤差 94
4.1.3 神經(jīng)網(wǎng)絡(luò)的權(quán)重初始化 95
4.2 深度學(xué)習(xí)的訓(xùn)練技巧 96
4.2.1 梯度消失和梯度爆炸 96
4.2.2 正則化和隨機(jī)失活 97
4.2.3 歸一化 99
4.2.4 自適應(yīng)學(xué)習(xí)率 100
4.2.5 超參數(shù)優(yōu)化 101
4.3 改善模型表現(xiàn) 102
4.3.1 解決數(shù)據(jù)不匹配問題 102
4.3.2 遷移學(xué)習(xí) 103
4.4 動手訓(xùn)練神經(jīng)網(wǎng)絡(luò) 104
4.4.1 Jupyter Notebook的
使用 104
4.4.2 訓(xùn)練MNIST手寫數(shù)字識別模型 106
4.4.3 TensorBoard的使用 112
4.5 本章小結(jié) 115
第5章 RK3399Pro芯片功能與
架構(gòu) 116
5.1 RK3399Pro芯片的整體架構(gòu) 116
5.2 神經(jīng)網(wǎng)絡(luò)處理單元 121
5.2.1 神經(jīng)網(wǎng)絡(luò)處理單元的
4個模塊 122
5.2.2 RKNN-Toolkit開發(fā)
套件 123
5.2.3 RKNN-API開發(fā)套件 126
5.3 視頻處理單元 126
5.4 圖形處理加速單元 128
5.5 本章小結(jié) 128
第6章 TB-RK3399Pro開發(fā)板 130
6.1 開發(fā)板硬件環(huán)境介紹 130
6.1.1 硬件總覽 130
6.1.2 硬件規(guī)格 131
6.2 開發(fā)板開發(fā)環(huán)境搭建 134
6.2.1 開發(fā)板的啟動和網(wǎng)絡(luò)
配置 134
6.2.2 終端與軟件包安裝 138
6.3 本章小結(jié) 144
第7章 基于TB-RK3399Pro進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)實戰(zhàn) 145
7.1 TB-RK3399Pro圖像采集 145
7.1.1 原理 145
7.1.2 實戰(zhàn) 146
7.2 TB-RK3399Pro手寫數(shù)字
識別 147
7.2.1 原理 147
7.2.2 實戰(zhàn) 150
7.3 TB-RK3399Pro YOLO目標(biāo)
檢測 152
7.3.1 原理 153
7.3.2 實戰(zhàn) 154
7.4 TB-RK3399Pro人臉識別 156
7.4.1 原理 156
7.4.2 實戰(zhàn) 162
7.5 本章小結(jié) 163
第8章 TB-RK3399Pro神經(jīng)網(wǎng)絡(luò)
運(yùn)算加速 165
8.1 神經(jīng)網(wǎng)絡(luò)運(yùn)算加速引擎介紹 165
8.2 神經(jīng)網(wǎng)絡(luò)模型部署和推理 166
8.2.1 模型部署 167
8.2.2 模型推理 169
8.3 神經(jīng)網(wǎng)絡(luò)模型量化 170
8.4 本章小結(jié) 173
第9章 基于TB-RK3399Pro開發(fā)板進(jìn)行循環(huán)神經(jīng)網(wǎng)絡(luò)實戰(zhàn) 174
9.1 TB-RK3399Pro開發(fā)板聲音
采集 174
9.1.1 必備環(huán)境安裝 174
9.1.2 聲音采集 175
9.2 語音識別模型介紹 176
9.2.1 特征提取 177
9.2.2 語音識別網(wǎng)絡(luò) 180
9.2.3 評價指標(biāo) 182
9.3 TB-RK3399Pro語音識別
實戰(zhàn) 182
9.3.1 實戰(zhàn)目的 182
9.3.2 實戰(zhàn)數(shù)據(jù) 182
9.3.3 實戰(zhàn)環(huán)境 183
9.3.4 實戰(zhàn)步驟 183
9.3.5 實戰(zhàn)結(jié)果 187
9.4 本章小結(jié) 188
第10章 基于Rock-X API的深度
學(xué)習(xí)案例 189
10.1 Rock-X SDK介紹 189
10.2 Rock-X環(huán)境部署 190
10.3 目標(biāo)檢測 190
10.4 車牌識別