深度學(xué)習(xí)嵌入式應(yīng)用開(kāi)發(fā):基于RK3399Pro和RK3588
定 價(jià):99 元
叢書(shū)名:智能系統(tǒng)與技術(shù)叢書(shū)
- 作者:王曰海 著
- 出版時(shí)間:2022/11/1
- ISBN:9787111715757
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP332
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
這是一本講解如何基于當(dāng)前主流的智能芯片RK3399Pro與RK3588進(jìn)行端側(cè)智能開(kāi)發(fā)的著作,它將指導(dǎo)讀者如何基于這兩款芯片進(jìn)行算法的設(shè)計(jì)與實(shí)施,瑞芯微官方推薦。理論部分,以深度學(xué)習(xí)為主線(xiàn),針對(duì)零基礎(chǔ)的讀者,不僅講解了卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等深度神經(jīng)網(wǎng)絡(luò)的原理以及它們?cè)谟?jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、語(yǔ)音識(shí)別等領(lǐng)域的經(jīng)典算法,還講解了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和模型優(yōu)化。實(shí)踐部分,以基于RK3399Pro與RK3588兩款智能芯片的端側(cè)智能開(kāi)發(fā)為主線(xiàn),講解了芯片的功能架構(gòu)、開(kāi)發(fā)板及其開(kāi)發(fā)環(huán)境、Rock-X API組件庫(kù),以及基于它們的各種端側(cè)智能應(yīng)用開(kāi)發(fā),包括各種神經(jīng)網(wǎng)絡(luò)的開(kāi)發(fā)、神經(jīng)網(wǎng)絡(luò)的運(yùn)算加速等,讓讀者掌握深度學(xué)習(xí)模型從設(shè)計(jì)、訓(xùn)練、優(yōu)化到端側(cè)部署的完整流程,快速學(xué)會(huì)人工智能應(yīng)用的開(kāi)發(fā)。
未來(lái)的社會(huì)是智能的社會(huì),智能體現(xiàn)在各種終端中,終端的智能需要算法和算力的結(jié)合,本書(shū)正是圍繞人工智能算法的落地應(yīng)用展開(kāi)。在人工智能算法部分,本書(shū)更加關(guān)注算法的具體實(shí)現(xiàn),算法的嵌入式落地以豐富的實(shí)踐案例展示了瑞芯微人工智能芯片的加速能力,希望能夠?qū)η度胧街悄苈涞貞?yīng)用開(kāi)發(fā)提供幫助!分螄(guó) 浙江大學(xué)信息與電子工程學(xué)院副院長(zhǎng) 在當(dāng)前的人工智能浪潮下,各類(lèi)算法越來(lái)越需要落地到各種應(yīng)用場(chǎng)景中,這都離不開(kāi)芯片的加速支持。瑞芯微3399Pro和3588是業(yè)界主流的人工智能芯片,其RKNN人工智能開(kāi)發(fā)庫(kù)易于上手,結(jié)合芯片進(jìn)行算法的設(shè)計(jì)實(shí)施是本書(shū)的主旨。本書(shū)在介紹人工智能算法基本原理的基礎(chǔ)上,重點(diǎn)介紹了芯片的加速庫(kù)和豐富的應(yīng)用案例,為相關(guān)智能產(chǎn)品的開(kāi)發(fā)提供了較好的引導(dǎo)!謲樤 瑞芯微電子股份有限公司副總裁 在過(guò)去的十年里,云計(jì)算成功地緩解了日益增長(zhǎng)的數(shù)據(jù)所帶來(lái)的存儲(chǔ)、管理等問(wèn)題,但不能滿(mǎn)足對(duì)響應(yīng)時(shí)間和安全性的高要求,這對(duì)嵌入式人工智能發(fā)起了挑戰(zhàn)。本書(shū)理論結(jié)合實(shí)踐,講述了深度學(xué)習(xí)模型從設(shè)計(jì)、訓(xùn)練、優(yōu)化到端側(cè)部署的完整過(guò)程,實(shí)屬難能可貴。——?jiǎng)⑴闻?某芯片大廠資深系統(tǒng)架構(gòu)師
近年來(lái),人工智能如火如荼地發(fā)展,并在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理等諸多應(yīng)用領(lǐng)域取得顯著成果。人工智能的發(fā)展依賴(lài)于深度學(xué)習(xí)算法、高質(zhì)量大數(shù)據(jù)和高性能計(jì)算三大要素。在初始階段,人工智能的開(kāi)發(fā)和應(yīng)用主要集中在云端,通常通過(guò)服務(wù)器進(jìn)行算法部署。但是云側(cè)智能存在數(shù)據(jù)安全、隱私保護(hù)等問(wèn)題,服務(wù)器部署在實(shí)際應(yīng)用場(chǎng)景中也存在成本高、便捷性差等缺點(diǎn)。同時(shí),隨著越來(lái)越多的開(kāi)發(fā)者從事人工智能開(kāi)發(fā),構(gòu)建更低成本、更便捷、更開(kāi)放的人工智能開(kāi)發(fā)平臺(tái)和生態(tài)變得十分迫切。
因此,人們開(kāi)始研究和探索能否將人工智能算法與應(yīng)用部署在終端。但是終端CPU的算力和功耗指標(biāo)通常無(wú)法滿(mǎn)足人工智能應(yīng)用的需求。隨著人工智能芯片的研發(fā)成功,搭載人工智能芯片的嵌入式神經(jīng)網(wǎng)絡(luò)處理器(NPU)能夠以低功耗進(jìn)行高速運(yùn)算,于是端側(cè)智能得以迅速發(fā)展并形成一個(gè)繁榮的應(yīng)用生態(tài)。端側(cè)智能將人工智能算法和應(yīng)用部署在手機(jī)、嵌入式設(shè)備等端側(cè)設(shè)備上。相比云側(cè)智能,使用NPU來(lái)進(jìn)行人工智能運(yùn)算具有更好地保護(hù)數(shù)據(jù)隱私、更低時(shí)延、便于部署、節(jié)省計(jì)算資源等優(yōu)勢(shì)。對(duì)于開(kāi)發(fā)者來(lái)講,端側(cè)智能更加易于上手,成本更低,因此越來(lái)越多的開(kāi)發(fā)者加入端側(cè)智能開(kāi)發(fā)隊(duì)伍并合力構(gòu)建其生態(tài)。英特爾、蘋(píng)果等公司紛紛在端側(cè)智能設(shè)備上發(fā)力,國(guó)內(nèi)也涌現(xiàn)出諸如華為昇騰、瑞芯微RK3399Pro及RK3588等優(yōu)秀的端側(cè)人工智能芯片。
優(yōu)秀的端側(cè)人工智能設(shè)備,除了需要有具備強(qiáng)大算力的NPU外,還需要能夠支持主流的深度學(xué)習(xí)框架,擁有功能豐富的開(kāi)發(fā)工具和豐富的開(kāi)發(fā)案例。我在科研、教學(xué)與生產(chǎn)中了解和使用了瑞芯微推出的高性能人工智能開(kāi)發(fā)板TB-RK3399Pro和TB-RK3588X,這兩個(gè)開(kāi)發(fā)板集軟硬件開(kāi)發(fā)于一體:在硬件方面擁有同類(lèi)芯片領(lǐng)先的、具備強(qiáng)大算力的NPU,同時(shí)集成了CPU、GPU、VPU、RGA等單元;在軟件方面支持Caffe、TensorFlow、PyTorch等深度學(xué)習(xí)框架,同時(shí)擁有RKNN-Toolkit開(kāi)發(fā)工具,支持模型轉(zhuǎn)換、模型量化、算子開(kāi)發(fā)、模型可視化等功能,還擁有豐富的人工智能教學(xué)案例和開(kāi)源社區(qū)。
在RK3399Pro的發(fā)展和使用過(guò)程中,社區(qū)積累了豐富的案例和資源,因此我萌生了基于RK3399Pro介紹深度學(xué)習(xí)和端側(cè)人工智能開(kāi)發(fā)的想法。我注意到:市面上的深度學(xué)習(xí)圖書(shū)大多側(cè)重于介紹基本概念和原理,缺少實(shí)踐和案例;而介紹端側(cè)人工智能開(kāi)發(fā)平臺(tái)的圖書(shū)大多類(lèi)似于用戶(hù)手冊(cè)或?qū)嶒?yàn)手冊(cè),往往只告訴用戶(hù)如何操作,缺乏對(duì)背后原理的講解。因此我想結(jié)合深度學(xué)習(xí)的基本原理,基于RK3399Pro的深度學(xué)習(xí)實(shí)踐,將理論和實(shí)踐結(jié)合起來(lái),寫(xiě)一本集算法知識(shí)、趣味性和實(shí)踐于一體的圖書(shū),讓深度學(xué)習(xí)的入門(mén)者、RK3399Pro的開(kāi)發(fā)者深入地了解深度學(xué)習(xí)和端側(cè)人工智能。
前言
第1章 深度學(xué)習(xí)基礎(chǔ) 1
1.1 深度學(xué)習(xí)的現(xiàn)實(shí)應(yīng)用 2
1.1.1 計(jì)算機(jī)視覺(jué) 2
1.1.2 自然語(yǔ)言處理 2
1.1.3 推薦系統(tǒng) 3
1.1.4 語(yǔ)音處理 3
1.1.5 其他領(lǐng)域 3
1.2 回歸問(wèn)題和分類(lèi)問(wèn)題 4
1.2.1 線(xiàn)性回歸 5
1.2.2 Softmax分類(lèi) 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ǔ)知識(shí) 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 圖像分類(lèi) 44
2.3.2 目標(biāo)檢測(cè) 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 基于時(shí)間的反向傳播 52
3.1.3 循環(huán)神經(jīng)網(wǎng)絡(luò)的長(zhǎng)期依賴(lài)
問(wèn)題 54
3.2 循環(huán)神經(jīng)網(wǎng)絡(luò)變體 55
3.2.1 長(zhǎng)短時(shí)記憶網(wǎng)絡(luò) 55
3.2.2 門(mén)控循環(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 自然語(yǔ)言處理 74
3.4.2 語(yǔ)音識(shí)別 84
3.4.3 喚醒詞檢測(cè) 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ù)集劃分和評(píng)估指標(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ù)不匹配問(wèn)題 102
4.3.2 遷移學(xué)習(xí) 103
4.4 動(dòng)手訓(xùn)練神經(jīng)網(wǎng)絡(luò) 104
4.4.1 Jupyter Notebook的
使用 104
4.4.2 訓(xùn)練MNIST手寫(xiě)數(shù)字識(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個(gè)模塊 122
5.2.2 RKNN-Toolkit開(kāi)發(fā)
套件 123
5.2.3 RKNN-API開(kāi)發(fā)套件 126
5.3 視頻處理單元 126
5.4 圖形處理加速單元 128
5.5 本章小結(jié) 128
第6章 TB-RK3399Pro開(kāi)發(fā)板 130
6.1 開(kāi)發(fā)板硬件環(huán)境介紹 130
6.1.1 硬件總覽 130
6.1.2 硬件規(guī)格 131
6.2 開(kāi)發(fā)板開(kāi)發(fā)環(huán)境搭建 134
6.2.1 開(kāi)發(fā)板的啟動(dòng)和網(wǎng)絡(luò)
配置 134
6.2.2 終端與軟件包安裝 138
6.3 本章小結(jié) 144
第7章 基于TB-RK3399Pro進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn) 145
7.1 TB-RK3399Pro圖像采集 145
7.1.1 原理 145
7.1.2 實(shí)戰(zhàn) 146
7.2 TB-RK3399Pro手寫(xiě)數(shù)字
識(shí)別 147
7.2.1 原理 147
7.2.2 實(shí)戰(zhàn) 150
7.3 TB-RK3399Pro YOLO目標(biāo)
檢測(cè) 152
7.3.1 原理 153
7.3.2 實(shí)戰(zhàn) 154
7.4 TB-RK3399Pro人臉識(shí)別 156
7.4.1 原理 156
7.4.2 實(shí)戰(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開(kāi)發(fā)板進(jìn)行循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn) 174
9.1 TB-RK3399Pro開(kāi)發(fā)板聲音
采集 174
9.1.1 必備環(huán)境安裝 174
9.1.2 聲音采集 175
9.2 語(yǔ)音識(shí)別模型介紹 176
9.2.1 特征提取 177
9.2.2 語(yǔ)音識(shí)別網(wǎng)絡(luò) 180
9.2.3 評(píng)價(jià)指標(biāo) 182
9.3 TB-RK3399Pro語(yǔ)音識(shí)別
實(shí)戰(zhàn) 182
9.3.1 實(shí)戰(zhàn)目的 182
9.3.2 實(shí)戰(zhàn)數(shù)據(jù) 182
9.3.3 實(shí)戰(zhàn)環(huán)境 183
9.3.4 實(shí)戰(zhàn)步驟 183
9.3.5 實(shí)戰(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)檢測(cè) 190
10.4 車(chē)牌識(shí)別