深度學習算法與實踐

郝曉莉,王昌利,侯亞麗,景輝

  • 出版商: 清華大學
  • 出版日期: 2023-11-01
  • 定價: $354
  • 售價: 8.5$301
  • 語言: 簡體中文
  • 頁數: 314
  • ISBN: 7302642680
  • ISBN-13: 9787302642688
  • 相關分類: DeepLearning
  • 下單後立即進貨 (約4週~6週)

  • 深度學習算法與實踐-preview-1
  • 深度學習算法與實踐-preview-2
  • 深度學習算法與實踐-preview-3
深度學習算法與實踐-preview-1

商品描述

本書是一本深度學習從入門、算法到應用實踐的書籍。全書共9章,第1章介紹深度學習基礎,主要介紹基本概念和基本算法;第2章介紹深度學習的計算平臺,主要介紹深度神經網絡計算芯片TPU的架構原理;第3章介紹深度學習編程環境和操作基礎,引導零基礎讀者快速入門Linux操作系統、Python編程語言、TensorFlow和PyTorch深度學習框架,為實現深度學習算法開發及應用部署奠定基礎;第4~8章基於捲積神經網絡,分別聚焦電腦視覺領域的幾大經典任務,包括圖像的分類、目標檢測、語義分割、實例分割、人臉檢測與識別等;第9章介紹循環神經網絡,關註時序序列處理任務。本書每章講解一系列經典神經網絡的創新性思路,給出了詳細的模型結構解析,並提供了具體的實踐項目。從代碼解析、網絡訓練、網絡推理到模型部署,帶領讀者從理論一步步走向實踐。 本書既可作為高等學校深度學習相關課程的教材,也可作為從事人工智能應用系統開發的科研和技術人員參考用書。

目錄大綱

目錄

 

 

第1章深度學習基礎/1

1.1人工智能概述1

1.1.1人工智能在各領域中的應用1

1.1.2人工智能、機器學習和深度學習3

1.2深度學習的基本原理5

1.2.1神經元5

1.2.2人工神經網絡8

1.2.3反向傳播算法11

1.2.4神經網絡的數據結構——張量18

1.3捲積神經網絡18

1.3.1捲積層19

1.3.2池化層21

1.3.3歸一化層21

1.3.4全連接層22

1.3.5Softmax函數22

1.3.6損失函數23

1.3.7捲積神經網絡的特點24

1.3.8捲積神經網絡的發展25

1.4遷移學習26

1.5模型訓練超參數27

1.6深度學習在電腦視覺中的典型應用28

1.7數據集29

1.7.1數據集的劃分30

1.7.2數據集的預處理30

1.7.3數據集的標註33

1.7.4常用數據集35

1.8深度學習框架47

1.9深度學習的計算特點47

第2章深度學習的計算平臺/49

2.1神經網絡計算加速芯片512.1.1神經網絡的計算特點51

2.1.2神經網絡的計算芯片52

2.2TPU架構與原理54

2.2.1谷歌TPU架構與原理56

2.2.2算能TPU架構與原理61

2.3算能TPU硬件架構及產品形態63

2.3.1算能TPU的芯片硬件架構63

2.3.2算能TPU的產品形態65

2.4算能TPU軟件架構65

2.4.1實時視頻流處理方案66

2.4.2深度學習軟件開發工具包67

2.4.3離線模型轉換68

2.4.4在線模型推理69

2.4.5自定義算子69

2.4.6模型量化加速70

2.4.7高級接口編程庫70

〖1〗深度學習算法與實踐目錄〖3〗〖3〗第3章深度學習編程環境操作基礎/72

3.1Linux入門72

3.1.1Linux系統的安裝簡介72

3.1.2Linux系統的常用命令73

3.1.3Linux的文本編輯器75

3.2Python入門75

3.2.1Python環境的安裝和使用75

3.2.2PyCharm集成開發環境的安裝和使用76

3.2.3常用Python庫79

3.2.4Python虛擬環境79

3.3TensorFlow入門81

3.3.1TensorFlow的安裝81

3.3.2TensorFlow的基本操作82

3.3.3使用TensorFlow實現手寫數字識別85

3.4PyTorch入門87

3.4.1PyTorch的安裝87

3.4.2PyTorch的基本操作88

3.4.3使用PyTorch實現手寫數字識別89

3.5SE5平臺開發環境92

3.5.1SE5應用系統開發的硬件環境92

3.5.2SE5應用系統開發的軟件環境93

第4章圖像分類/96

4.1圖像分類任務介紹96

4.2典型分類網絡解析97

4.2.1LeNet5手寫數字識別神經網絡97

4.2.2AlexNet圖像分類網絡99

4.2.3VGGNet圖像分類網絡102

4.2.4GoogLeNet圖像分類網絡106

4.2.5ResNet殘差圖像分類網絡110

4.2.6DenseNet密集連接捲積網絡115

4.2.7SENet壓縮激勵圖像分類網絡119

4.3實踐項目一: 基於LeNet5神經網絡的手寫數字識別120

4.3.1實踐項目內容120

4.3.2微調的LeNet5網絡結構121

4.3.3TensorFlow 2.x框架下程序實現122

4.3.4LeNet5模型訓練和測試過程125

4.3.5LeNet5網絡模型在SE5上的部署125

4.4實踐項目二: 基於ResNet神經網絡的貓狗分類130

4.4.1實踐項目內容130

4.4.2Dogs vs. Cats數據集簡介130

4.4.3ResNet18網絡結構130

4.4.4PyTorch框架下程序實現132

4.4.5ResNet18模型訓練和測試過程136

4.4.6ResNet18網絡模型在SE5上的部署137

第5章目標檢測/142

5.1目標檢測任務介紹142

5.1.1目標檢測任務142

5.1.2預備知識143

5.1.3評估準則147

5.2兩階段目標檢測算法150

5.2.1RCNN150

5.2.2Fast RCNN151

5.2.3Faster RCNN152

5.3單階段目標檢測算法160

5.3.1YOLOv1160

5.3.2YOLOv2165

5.3.3YOLOv3172

5.3.4YOLOv4175

5.3.5YOLOv5180

5.3.6FCOS185

5.3.7DETR188

5.4實踐項目: 基於YOLOv5s的目標檢測190

5.4.1實踐項目內容190

5.4.2YOLOv5s網絡結構190

5.4.3PyTorch框架下程序實現190

5.4.4YOLOv5s網絡模型訓練和測試過程196

5.4.5YOLOv5s網絡模型在SE5上的部署197

第6章語義分割/200

6.1語義分割任務介紹200

6.1.1語義分割任務200

6.1.2預備知識200

6.1.3評估準則201

6.2典型語義分割網絡203

6.2.1FCN203

6.2.2UNet205

6.2.3SegNet206

6.2.4PSPNet208

6.2.5ICNet210

6.2.6DeepLab系列214

6.3實踐項目: 基於ICNet的語義分割217

6.3.1實踐項目內容217

6.3.2數據集217

6.3.3ICNet網絡結構218

6.3.4TensorFlow框架下程序實現218

6.3.5ICNet網絡模型訓練和測試過程226

6.3.6ICNet網絡模型在SE5上的部署227

第7章實例分割/230

7.1實例分割任務介紹230

7.1.1實例分割任務230

7.1.2評估準則230

7.2典型實例分割網絡231

7.2.1Mask RCNN231

7.2.2YOLACT與YOLACT++237

7.2.3SOLO和SOLOv2243

7.3實踐項目: 基於Mask RCNN的實例分割251

7.3.1實踐項目內容251

7.3.2Mask RCNN網絡結構251

7.3.3TensorFlow框架下程序實現251

7.3.4Mask RCNN網絡測試過程256

7.3.5Mask RCNN網絡模型在SE5上的部署256

第8章人臉檢測與識別/258

8.1人臉檢測與識別任務介紹258

8.1.1人臉檢測與識別及其應用258

8.1.2人臉識別系統構成258

8.1.3常用數據集介紹259

8.1.4評估準則260

8.2人臉檢測網絡262

8.2.1MTCNN人臉檢測網絡262

8.2.2RetinaFace人臉檢測網絡264

8.3人臉對齊268

8.4人臉特徵提取網絡269

8.4.1人臉特徵提取網絡原理269

8.4.2FaceNet272

8.4.3ArcFace/InsightFace275

8.5實踐項目一: 基於PC的MTCNN+ArcFace實時人臉檢測和識別281

8.5.1實踐項目內容281

8.5.2PyTorch框架下程序實現281

8.5.3人臉識別系統測試290

8.6實踐項目二: 基於SE5的RetinaFace+FaceNet實時人臉檢測和識別291

8.6.1實踐項目內容291

8.6.2系統方案291

8.6.3PyTorch框架下程序實現292

8.6.4人臉識別系統測試297

第9章循環神經網絡/299

9.1循環神經網絡原理299

9.1.1循環神經網絡299

9.1.2長短期記憶網絡301

9.1.3門控循環單元網絡302

9.1.4雙向循環神經網絡303

9.2實踐項目: 基於LSTM的股票預測304

9.2.1實踐項目內容304

9.2.2數據集304

9.2.3股票預測方法304

9.2.4TensorFlow框架下程序實現306

9.2.5LSTM網絡模型訓練和測試過程311

9.2.6LSTM網絡模型在SE5上的部署312

參考文獻/3151.1人工智能概述1

1.1.1人工智能在各領域中的應用1

1.1.2人工智能、機器學習和深度學習3

1.2深度學習的基本原理5

1.2.1神經元5

1.2.2人工神經網絡8

1.2.3反向傳播算法11

1.2.4神經網絡的數據結構——張量18

1.3捲積神經網絡18

1.3.1捲積層19

1.3.2池化層21

1.3.3歸一化層21

1.3.4全連接層22

1.3.5Softmax函數22

1.3.6損失函數23

1.3.7捲積神經網絡的特點24

1.3.8捲積神經網絡的發展25

1.4遷移學習26

1.5模型訓練超參數27

1.6深度學習在電腦視覺中的典型應用28

1.7數據集29

1.7.1數據集的劃分30

1.7.2數據集的預處理30

1.7.3數據集的標註33

1.7.4常用數據集35

1.8深度學習框架47

1.9深度學習的計算特點47

第2章深度學習的計算平臺/49

2.1神經網絡計算加速芯片512.1.1神經網絡的計算特點51

2.1.2神經網絡的計算芯片52

2.2TPU架構與原理54

2.2.1谷歌TPU架構與原理56

2.2.2算能TPU架構與原理61

2.3算能TPU硬件架構及產品形態63

2.3.1算能TPU的芯片硬件架構63

2.3.2算能TPU的產品形態65

2.4算能TPU軟件架構65

2.4.1實時視頻流處理方案66

2.4.2深度學習軟件開發工具包67

2.4.3離線模型轉換68

2.4.4在線模型推理69

2.4.5自定義算子69

2.4.6模型量化加速70

2.4.7高級接口編程庫70

〖1〗深度學習算法與實踐目錄〖3〗〖3〗第3章深度學習編程環境操作基礎/72

3.1Linux入門72

3.1.1Linux系統的安裝簡介72

3.1.2Linux系統的常用命令73

3.1.3Linux的文本編輯器75

3.2Python入門75

3.2.1Python環境的安裝和使用75

3.2.2PyCharm集成開發環境的安裝和使用76

3.2.3常用Python庫79

3.2.4Python虛擬環境79

3.3TensorFlow入門81

3.3.1TensorFlow的安裝81

3.3.2TensorFlow的基本操作82

3.3.3使用TensorFlow實現手寫數字識別85

3.4PyTorch入門87

3.4.1PyTorch的安裝87

3.4.2PyTorch的基本操作88

3.4.3使用PyTorch實現手寫數字識別89

3.5SE5平臺開發環境92

3.5.1SE5應用系統開發的硬件環境92

3.5.2SE5應用系統開發的軟件環境93

第4章圖像分類/96

4.1圖像分類任務介紹96

4.2典型分類網絡解析97

4.2.1LeNet5手寫數字識別神經網絡97

4.2.2AlexNet圖像分類網絡99

4.2.3VGGNet圖像分類網絡102

4.2.4GoogLeNet圖像分類網絡106

4.2.5ResNet殘差圖像分類網絡110

4.2.6DenseNet密集連接捲積網絡115

4.2.7SENet壓縮激勵圖像分類網絡118

4.3實踐項目一: 基於LeNet5神經網絡的手寫數字識別120

4.3.1實踐項目內容120

4.3.2微調的LeNet5網絡結構121

4.3.3TensorFlow 2.x框架下程序實現121

4.3.4LeNet5模型訓練和測試過程124

4.3.5LeNet5網絡模型在SE5上的部署125

4.4實踐項目二: 基於ResNet神經網絡的貓狗分類129

4.4.1實踐項目內容129

4.4.2Dogs vs. Cats數據集簡介129

4.4.3ResNet18網絡結構130

4.4.4PyTorch框架下程序實現131

4.4.5ResNet18模型訓練和測試過程135

4.4.6ResNet18網絡模型在SE5上的部署136

第5章目標檢測/141

5.1目標檢測任務介紹141

5.1.1目標檢測任務141

5.1.2預備知識142

5.1.3評估準則146

5.2兩階段目標檢測算法149

5.2.1RCNN149

5.2.2Fast RCNN150

5.2.3Faster RCNN151

5.3單階段目標檢測算法159

5.3.1YOLOv1159

5.3.2YOLOv2164

5.3.3YOLOv3171

5.3.4YOLOv4174

5.3.5YOLOv5179

5.3.6FCOS184

5.3.7DETR188

5.4實踐項目: 基於YOLOv5s的目標檢測189

5.4.1實踐項目內容189

5.4.2YOLOv5s網絡結構190

5.4.3PyTorch框架下程序實現191

5.4.4YOLOv5s網絡模型訓練和測試過程195

5.4.5YOLOv5s網絡模型在SE5上的部署197

第6章語義分割/200

6.1語義分割任務介紹200

6.1.1語義分割任務200

6.1.2預備知識200

6.1.3評估準則201

6.2典型語義分割網絡203

6.2.1FCN203

6.2.2UNet205

6.2.3SegNet206

6.2.4PSPNet207

6.2.5ICNet210

6.2.6DeepLab系列214

6.3實踐項目: 基於ICNet的語義分割217

6.3.1實踐項目內容217

6.3.2數據集217

6.3.3ICNet網絡結構218

6.3.4TensorFlow框架下程序實現218

6.3.5ICNet網絡模型訓練和測試過程226

6.3.6ICNet網絡模型在SE5上的部署227

第7章實例分割/230

7.1實例分割任務介紹230

7.1.1實例分割任務230

7.1.2評估準則230

7.2典型實例分割網絡231

7.2.1Mask RCNN231

7.2.2YOLACT與YOLACT++237

7.2.3SOLO和SOLOv2243

7.3實踐項目: 基於Mask RCNN的實例分割251

7.3.1實踐項目內容251

7.3.2Mask RCNN網絡結構251

7.3.3TensorFlow框架下程序實現251

7.3.4Mask RCNN網絡測試過程256

7.3.5Mask RCNN網絡模型在SE5上的部署256

第8章人臉檢測與識別/258

8.1人臉檢測與識別任務介紹258

8.1.1人臉檢測與識別及其應用258

8.1.2人臉識別系統構成258

8.1.3常用數據集介紹259

8.1.4評估準則260

8.2人臉檢測網絡262

8.2.1MTCNN人臉檢測網絡262

8.2.2RetinaFace人臉檢測網絡264

8.3人臉對齊268

8.4人臉特徵提取網絡269

8.4.1人臉特徵提取網絡原理269

8.4.2FaceNet272

8.4.3ArcFace/InsightFace275

8.5實踐項目一: 基於PC的MTCNN+ArcFace實時人臉檢測和識別281

8.5.1實踐項目內容281

8.5.2PyTorch框架下程序實現281

8.5.3人臉識別系統測試290

8.6實踐項目二: 基於SE5的RetinaFace+FaceNet實時人臉檢測和識別291

8.6.1實踐項目內容291

8.6.2系統方案291

8.6.3PyTorch框架下程序實現292

8.6.4人臉識別系統測試297

第9章循環神經網絡/299

9.1循環神經網絡原理299

9.1.1循環神經網絡299

9.1.2長短期記憶網絡301

9.1.3門控循環單元網絡302

9.1.4雙向循環神經網絡303

9.2實踐項目: 基於LSTM的股票預測304

9.2.1實踐項目內容304

9.2.2數據集304

9.2.3股票預測方法304

9.2.4TensorFlow框架下程序實現306

9.2.5LSTM網絡模型訓練和測試過程311

9.2.6LSTM網絡模型在SE5上的部署312

參考文獻/315