華為MindSpore深度學習框架應用開發實戰

李曉黎

  • 出版商: 人民郵電
  • 出版日期: 2024-06-01
  • 定價: $599
  • 售價: 8.5$509 (限時優惠至 2024-11-30)
  • 語言: 簡體中文
  • 頁數: 292
  • 裝訂: 平裝
  • ISBN: 7115629854
  • ISBN-13: 9787115629852
  • 相關分類: 數位訊號處理 DspDeepLearning
  • 立即出貨 (庫存 < 4)

  • 華為MindSpore深度學習框架應用開發實戰-preview-1
  • 華為MindSpore深度學習框架應用開發實戰-preview-2
華為MindSpore深度學習框架應用開發實戰-preview-1

相關主題

商品描述

全書從邏輯上共分3部分。第一部分由第1章和第2章組成,介紹深度學習的基礎理論、MindSpore總體架構和編程基礎。第二部分由第3~8章組成,介紹MindSpore框架各子系統的具體情況,包括數據處理、算子、神經網絡模型開發、數據可視化組件MindInsight、推理、以及移動端AI框架MindSpore Lite。第三部分由第9章和第10章組成,介紹使用MindSpore框架開發和訓練的經典深度學習模型實例。

本書既可以作為深度學習相關方向學生的專業用書,又可以作為相關科研人員和開發人員的參考用書。

作者簡介

李晓黎,1998年毕业于吉林大学计算机系,硕士,具有中国投资银行、国家开发银行、中信实业银行等多家银行从业经历,多年参与银行信息化建设和网银平台开发工作,积累了深厚的全栈技术和丰富的实战开发经验,自2006年以来10多年间带领所组建的开发团队,从事网络管理软件、企业ERP系统和电商平台的开发与建设,对开发模式、开发团队组织管理和系统架构设计有着深入的理解和丰富的实战经验。在带领技术团队的过程中积累了丰富的专业技术与培训经验。

目錄大綱

第 1章 深度學習基礎 1

1.1 深度學習的基礎理論 1

1.1.1 人工智能的發展歷程 1

1.1.2 深度學習是當前熱度最高的AI技術 3

1.1.3 深度學習技術的常用概念 5

1.1.4 深度學習的基本工作流程 8

1.2 深度學習框架 10

1.2.1 常用的深度學習框架 10

1.2.2 深度學習框架的對比與選擇 12

1.3 深度學習框架的執行模式 15

1.3.1 Eager模式和Graph模式的對比 15

1.3.2 計算圖的概念 17

1.4 華為雲AI平臺ModelArts 20

1.4.1 功能概述 20

1.4.2 ModelArts平臺對昇騰生態的支持 22

1.4.3 ModelArts開發工具 22

1.4.4 使用ModelArts平臺的基本方法 23

第 2章 MindSpore概述 30

2.1 總體架構 30

2.1.1 華為全棧全場景AI解決方案 30

2.1.2 MindSpore框架的總體架構 31

2.2 MindSpore庫和子系統 32

2.2.1 ModelZoo模型庫 33

2.2.2 Extend擴展庫 33

2.2.3 MindScience子系統 33

2.2.4 MindExpression子系統 34

2.2.5 MindCompiler子系統 34

2.2.6 MindRT子系統 36

2.2.7 MindData子系統 36

2.2.8 MindInsight子系統 37

2.2.9 MindAmour子系統 37

2.3 搭建MindSpore環境 38

2.3.1 準備基礎運行環境 38

2.3.2 安裝MindSpore框架 40

2.3.3 MindSpore社區 41

2.4 Python模塊編程 42

2.4.1 Python模塊編程基礎 42

2.4.2 常用的Python數據科學開發包 44

2.4.3 MindSpore Python API的常用模塊 45

2.5 MindSpore編程基礎 46

2.5.1 MindSpore的開發流程 46

2.5.2 配置MindSpore的運行信息 46

2.5.3 數據類型(DataType) 47

2.5.4 張量(Tensor) 48

2.5.5 數據集(Dataset) 51

2.5.6 算子(Operation) 51

2.5.7 神經網絡基本單元(Cell) 51

2.5.8 模型(Model) 51

第3章 數據處理 52

3.1 背景知識 52

3.1.1 深度學習中的數據處理 52

3.1.2 MindSpore的數據處理流程 53

3.2 數據集加載 54

3.2.1 加載常用圖像數據集 54

3.2.2 加載常用文本數據集 56

3.2.3 數據採樣 58

3.2.4 生成和使用自定義數據集 59

3.3 通用數據處理 60

3.3.1 數據混洗 60

3.3.2 實現數據映射操作 61

3.3.3 對數據集進行分批 62

3.3.4 對數據集進行重復處理 63

3.3.5 對數據集進行拼接處理 64

3.3.6 Tensor對象的轉置處理 66

3.4 文本數據處理 68

3.4.1 文本數據增強技術概述 68

3.4.2 構造和使用詞匯表 68

3.4.3 文本分詞技術 69

3.5 圖像處理與增強 71

3.5.1 使用Matplotlib顯示圖像 72

3.5.2 圖像裁剪 73

3.5.3 圖像翻轉 75

3.5.4 圖像縮放 76

3.5.5 圖像反相 76

3.5.6 圖像格式的轉換 78

3.5.7 圖像數據類型的轉換 78

3.6 自定義數據集MindRecord 78

3.6.1 將數據存儲為MindRecord數據集 79

3.6.2 加載MindRecord數據集 81

3.7 優化數據處理 81

.3.7.1 數據加載性能優化 82

3.7.2 數據增強性能優化 82

3.8 ModelArts數據處理 84

3.8.1 創建數據集 85

3.8.2 數據增強 85

第4章 MindSpore算子 88

4.1 深度學習的常用算法 88

4.1.1 激活函數 88

4.1.2 損失函數 91

4.1.3 優化器(optimizer) 94

4.1.4 歸一化(normalization) 99

4.2 常用的激活函數算子 102

4.2.1 ReLU函數相關算子 102

4.2.2 Sigmoid函數相關算子 103

4.2.3 Tanh函數相關算子 104

4.2.4 Leaky ReLU函數相關算子 105

4.2.5 ELU函數相關算子 105

4.3 常用的損失函數算子 106

4.3.1 MSE損失函數相關算子 106

4.3.2 L1損失函數相關算子 108

4.3.3 SmoothL1損失函數相關算子 108

4.3.4 交叉熵損失函數相關算子 109

4.3.5 KLDiv損失函數相關算子 111

4.3.6 NLL損失函數相關算子 111

4.3.7 SoftMargin損失函數相關算子 112

4.4 常用的優化器和學習率相關算子 113

4.4.1 常用的優化器算子 113

4.4.2 學習率相關算子 113

4.5 常用的歸一化算子 115

4.5.1 BN算法相關算子 115

4.5.2 LN算法相關算子 116

4.5.3 IN算法相關算子 117

4.5.4 GN算法相關算子 117

4.5.5 LRN算法相關算子 118

第5章 神經網絡模型開發 120

5.1 神經網絡模型基礎 120

5.1.1 搭建神經網絡的流程 120

5.1.2 CNN的工作原理 122

5.1.3 CNN的經典模型 130

5.2 MindSpore搭建神經網絡 135

5.2.1 在MindSpore框架中搭建神經網絡的流程 135

5.2.2 定義神經網絡類 136

5.2.3 在神經網絡中定義隱層 137

5.2.4 自動微分 140

5.2.5 設置超參初始值 144

5.2.6 設置損失函數和優化器 145

5.3 模型訓練 145

5.3.1 創建模型對象 145

5.3.2 訓練模型 145

5.3.3 保存模型 146

5.4 基於LeNet-5模型的手寫數字識別實例 147

5.4.1 搭建環境 147

5.4.2 訓練模型 149

5.4.3 LeNet-5模型的源代碼解析 150

5.5 通過ModelArts雲平臺在線訓練模型 154

5.5.1 本節案例的流程 154

5.5.2 準備訓練數據 154

5.5.3 訂閱算法 156

5.5.4 使用訂閱算法創建訓練作業 158

第6章 數據可視化組件MindInsight 160

6.1 MindInsight概述 160

6.1.1 MindInsight的工作原理 160

6.1.2 安裝MindInsight 160

6.2 收集和解析Summary日誌文件 162

6.2.1 收集Summary日誌文件 162

6.2.2 解析Summary日誌文件 165

6.3 訓練看板 166

6.3.1 訓練標量可視化 167

6.3.2 參數分佈圖 167

6.3.3 張量可視化 168

6.3.4 計算圖可視化 169

6.3.5 數據圖可視化 172

6.3.6 數據抽樣 172

6.3.7 損失函數多維分析 172

6.4 溯源與對比看板 181

6.4.1 溯源與對比的數據採集實例 181

6.4.2 溯源 182

6.4.3 對比看板 183

第7章 推理 185

7.1 概述 185

7.1.1 推理的基本概念 185

7.1.2 訓練和推理的區別與聯系 186

7.2 MindSpore推理概述 186

7.2.1 MindSpore推理的流程 186

7.2.2 MindSpore模型文件格式 187

7.2.3 加載模型 188

7.3 MindSpore在線推理 188

7.3.1 使用MindSpore Hub從華為雲加載模型 188

7.3.2 驗證模型 192

7.3.3 測試模型 193

7.4 MindSpore離線推理 195

7.4.1 ONNX Runtime概述 196

7.4.2 MindSpore導出ONNX模型 196

7.4.3 在Python環境中安裝ONNX Runtime 197

7.4.4 Python使用ONNX Runtime進行推理的流程 197

7.4.5 加載模型 197

7.4.6 獲取輸入輸出節點名 198

7.4.7 準備數據 198

7.4.8 執行推理 199

7.5 通過ModelArts雲平臺實現在線推理 200

7.5.1 模型轉換 201

7.5.2 創建AI應用 202

7.5.3 部署為在線服務 204

7.5.4 調用在線服務的API接口 206

7.5.5 清除資源 210

第8章 移動端AI框架MindSpore Lite 211

8.1 MindSpore Lite的總體架構 211

8.1.1 離線模塊 211

8.1.2 在線模塊 212

8.2 在Ubuntu環境下安裝MindSpore Lite 212

8.2.1 安裝依賴的軟件 212

8.2.2 編譯MindSpore Lite 214

8.2.3 下載MindSpore Lite壓縮包 215

8.3 MindSpore Lite C++編程 217

8.3.1 完整的遷移學習過程編程 217

8.3.2 端側模型訓練可以使用的回調函數 219

8.3.3 單純的端側推理場景編程 221

8.4 端側訓練、評估和推理實例 223

8.4.1 實例的目錄結構 223

8.4.2 解析實例的主腳本prepare_and_run.sh 223

8.4.3 為運行實例做準備 233

8.4.4 運行實例 236

8.4.5 實例中端側模型訓練代碼解析 238

8.4.6 實例中端側模型評估代碼解析 244

8.4.7 實例中端側模型推理代碼解析 245

8.5 開發圖像分類的Android APP實例 249

8.5.1 本實例的運行效果 249

8.5.2 本實例的開發流程 250

8.5.3 本實例使用的圖像分類模型 251

8.5.4 下載本實例的源代碼 253

8.5.5 搭建本實例的開發環境 254

8.5.6 構建和運行本實例APP項目 257

8.5.7 本實例執行端側推理的流程 257

8.5.8 端側推理的C++程序 258

第9章 基於DCGAN的動漫頭像生成實例 269

9.1 GAN和DCGAN理論基礎 269

9.1.1 生成模型和判別模型 269

9.1.2 什麽是GAN 270

9.1.3 DCGAN的原理 271

9.2 為在線運行實例準備環境 273

9.2.1 下載實例代碼 273

9.2.2 在ModelArts創建Notebook實例並上傳代碼 274

9.3 實例的在線運行與代碼解析 275

9.3.1 下載並解壓數據集 276

9.3.2 設置MindSpore運行屬性及訓練參數 276

9.3.3 圖像數據處理與增強 277

9.3.4 可視化部分訓練數據 279

9.3.5 初始化權重參數 280

9.3.6 定義生成器模型 281

9.3.7 定義判別器模型 283

9.3.8 連接生成器和損失函數 284

9.3.9 連接判別器和損失函數 285

9.3.10 定義損失函數和優化器 286

9.3.11 定義DCGAN網絡 287

9.3.12 完成生成器和判別器的實例化工作 288

9.3.13 訓練模型 288

9.3.14 繪制訓練過程中生成器和判別器損失值變化趨勢圖 290

9.3.15 展示生成的卡通頭像 291

第 10章 基於RNN實現文本情感分類的實例 294

10.1 文本的數值化表示 294

10.1.1 獨熱(One-hot)編碼 294

10.1.2 將每個單詞編碼為一個唯一數字 294

10.1.3 詞嵌入向量 295

10.1.4 GloVe(Global Vectors,全局詞向量)模型 296

10.2 RNN工作原理 298

10.2.1 RNN的網絡結構 298

10.2.2 RNN的作用 299

10.2.3 LSTM模型 299

10.3 實例的運行和代碼解析 301

10.3.1 下載實例代碼並上傳至ModelArts雲平臺 301

10.3.2 本實例的代碼塊 301

10.3.3 下載並解壓數據集 301

10.3.4 下載GloVe包 302

10.3.5 創建保存數據集預處理輸出的目錄 303

10.3.6 配置運行信息和網絡參數 303

10.3.7 安裝gensim依賴包 304

10.3.8 執行數據集預處理 305

10.3.9 顯示數據集預處理的結果 310

10.3.10 創建訓練集對象 311

10.3.11 定義網絡 312

10.3.12 訓練並保存模型 324

10.3.13 模型驗證 325

10.3.14 本實例的MindSpore版本不兼容問題 326

附錄 327

第8章APP實例的部分代碼解析 327

一.主界面處理程序簡介 327

二.結果頁面處理程序簡介 330

三.端側推理的Java程序 332