本書以PyTorch深度學習的常用技術與真實案例相結合的方式,深入淺出地介紹使用PyTorch實現深度學習應用的重要內容。本書共7章,內容包括深度學習概述、PyTorch深度學習通用流程、PyTorch深度學習基礎、手寫漢字識別、文本生成、基于CycleGAN的圖像風格轉換、基于TipDM大數據挖掘建模平臺實現文本生成等。本書大部分章包含實訓和課后習題,希望通過練習和操作實踐,幫助讀者鞏固所學的內容。
本書可以作為高等學校數據科學與大數據技術或人工智能相關專業(yè)的教材,也可作為深度學習愛好者的自學用書。
將理論與實戰(zhàn)結合。本書以使用PyTorch實現深度學習的全流程為主線,針對常見的各類深度神經網絡,通過圖文并茂的方式介紹其原理,并通過實例介紹了具體的PyTorch實現方式。
以應用為導向。本書針對深度學習的常見應用,如文字識別、文本生成和圖像風格轉換等,從背景介紹到原理分析,再到任務案例的具體流程,讓讀者明確如何利用所學知識來解決問題,并通過實訓和課后習題鞏固所學知識,真正理解并能夠應用所學知識。
注重啟發(fā)式教學。全書大部分章節(jié)以一個例子為開端,注重對于讀者思路的啟發(fā)與解決方案的實施。通過對深度學習任務的全流程的體驗,讓讀者真正理解并掌握深度學習的相關技術。
胡小春,廣西財經學院,副教授,主要研究大數據分析與智能計算方向;近五年主持與參與國家級、省部級科研課題5項、市廳級項目3項,在《小型微型計算機系統(tǒng)》、《農業(yè)機械學報》等期刊發(fā)表學術論文30余篇,主持、參與省部級教改項目5項,主講《計算機網絡》、《數據庫原理》等課程,主編與參編北京理工大學出版社的《計算機基礎實踐教程》和《Python程序設計》,指導學生獲互聯網+、程序設計大賽等國家級、省部級專業(yè)競賽賽一、二、三等獎多項獎項。
第 1章 深度學習概述 1
1.1 深度學習簡介 1
1.1.1 深度學習的定義 1
1.1.2 深度學習的常見應用 2
1.2 深度學習與應用領域 9
1.2.1 深度學習與計算機視覺 9
1.2.2 深度學習與自然語言處理 10
1.2.3 深度學習與語音識別 11
1.2.4 深度學習與機器學習 12
1.2.5 深度學習與人工智能 13
1.3 PyTorch簡介 14
1.3.1 各深度學習框架對比 14
1.3.2 PyTorch生態(tài) 16
1.3.3 PyTorch特點 17
1.3.4 PyTorch安裝 17
1.4 PyTorch中的預訓練模型 23
1.4.1 預訓練模型的概念 23
1.4.2 預訓練模型的使用場景 24
1.4.3 PyTorch預訓練模型的調用方法 25
小結 26
課后習題 26
第 2章 PyTorch深度學習通用流程 28
2.1 數據加載與預處理 29
2.1.1 數據加載 29
2.1.2 數據預處理 30
2.1.3 加載及預處理貓狗分類數據 37
2.2 構建網絡 42
2.2.1 常用的網絡構建方法 42
2.2.2 激活函數 46
2.2.3 構建基于卷積神經網絡的貓狗分類網絡 50
2.3 編譯網絡 53
2.3.1 損失函數 53
2.3.2 優(yōu)化器 56
2.3.3 編譯基于卷積神經網絡的貓狗分類網絡 59
2.4 訓練網絡 60
2.4.1 迭代次數 60
2.4.2 批訓練 61
2.4.3 訓練基于卷積神經網絡的貓狗分類網絡 61
2.5 性能評估 62
2.5.1 評估指標 62
2.5.2 評估基于卷積神經網絡的貓狗分類模型的性能 63
小結 66
實訓 CIFAR-10圖像分類 66
課后習題 67
第3章 PyTorch深度學習基礎 68
3.1 卷積神經網絡基礎 68
3.1.1 常用的卷積神經網絡算法及其結構 68
3.1.2 卷積神經網絡中的常用網絡層 72
3.1.3 基于卷積神經網絡的手寫數字識別 87
3.2 循環(huán)神經網絡基礎 97
3.2.1 常用的循環(huán)神經網絡算法及其結構 97
3.2.2 循環(huán)神經網絡中的常用網絡層 101
3.2.3 基于LSTM網絡的時間序列分析 111
3.3 生成對抗網絡基礎 115
3.3.1 常用的生成對抗網絡算法及其結構 115
3.3.2 基于生成對抗網絡的手寫數字圖像生成 119
小結 126
實訓1 基于卷積神經網絡的人臉表情識別 126
實訓2 基于循環(huán)神經網絡的文本情感分類 126
實訓3 基于生成對抗網絡的人物圖片生成 127
課后習題 127
第4章 手寫漢字識別 129
4.1 目標分析 129
4.1.1 背景 129
4.1.2 分析目標 130
4.1.3 項目工程結構 131
4.2 加載數據 132
4.2.1 定義生成圖像集路徑文檔的函數 132
4.2.2 定義讀取并轉換圖像數據格式的類 133
4.2.3 加載圖像數據 134
4.3 構建網絡 135
4.4 編譯網絡 137
4.5 訓練網絡 138
4.6 性能評估 138
4.7 模型預測 140
小結 140
實訓 手寫中文數字識別 141
課后習題 141
第5章 文本生成 142
5.1 目標分析 142
5.1.1 背景 142
5.1.2 分析目標 143
5.1.3 項目工程結構 143
5.2 文本預處理 144
5.2.1 處理數據 144
5.2.2 創(chuàng)建字典 145
5.2.3 生成序列 146
5.3 構建網絡 148
5.3.1 定義文本生成類的構造方法 149
5.3.2 初始化權重 150
5.3.3 設置數據在網絡中的流動方向 151
5.4 訓練網絡 153
5.4.1 設置配置項 153
5.4.2 執(zhí)行訓練 154
5.4.3 定義文本生成器 156
5.5 結果分析 159
小結 160
實訓 基于LSTM網絡的文本生成 160
課后習題 161
第6章 基于CycleGAN的圖像風格轉換 162
6.1 目標分析 162
6.1.1 背景 162
6.1.2 分析目標 163
6.1.3 項目工程結構 164
6.2 數據準備 164
6.3 構建網絡 166
6.3.1 殘差網絡 167
6.3.2 生成器 167
6.3.3 判別器 169
6.3.4 緩存隊列 170
6.4 訓練網絡 171
6.5 結果分析 175
小結 176
實訓 基于CycleGAN實現冬天與夏天的圖像風格轉換 176
課后習題 177
第7章 基于TipDM大數據挖掘建模平臺實現文本生成 178
7.1 平臺簡介 178
7.1.1 共享庫 180
7.1.2 數據連接 180
7.1.3 數據集 180
7.1.4 我的工程 181
7.1.5 個人組件 184
7.2 實現文本生成 184
7.2.1 配置數據源 185
7.2.2 文本預處理 187
7.2.3 構建網絡 189
7.2.4 訓練網絡 191
7.2.5 結果分析 195
小結 197
實訓 通過TipDM平臺實現基于LSTM網絡的文本生成 197
課后習題 197