內容簡介
隨著人工智慧的發展以及TensorFlow在人工智慧方面的火熱套用,越來越多的大學逐步開設深度學習和人工智慧課程。《TensorFlow 2.0深度學習從零開始學》既是一本為讀者量身定製的TensorFlow 2.0入門教材,也是針對需要學習TensorFlow 2.0新內容的讀者提供的基礎與進階知識的深入型教材。該書分為10章,主要內容包括TensorFlow 2.0開發環境、TensorFlow 2.0新特性、TensorFlow與Keras的使用、TensorFlow 2.0語法基礎、卷積層詳解與MNIST實戰、Dataset使用詳解、TensorFlow Datasets和TensorBoard詳解、ResNet及其實戰、注意力機制、卷積神經網路實戰。該書內容詳盡、示例豐富,是廣大對TensorFlow 2.0感興趣的讀者必備的參考書,同時也非常適合大中專院校師生學習閱讀,還可作為高等院校計算機及相關專業的教材使用。
作者簡介
王曉華,計算機專業講師,長期講授面向對象程式設計、數據結構、Hadoop程式設計等研究生和本科生相關課程;主研方向為雲計算、數據挖掘;曾主持和參與多項國家和省級科研課題,獨立科研項目獲省級成果認定,發表過多篇論文,擁有一項專利;著有《Spark MLlib機器學習實踐》《TensorFlow深度學習套用實踐》《OpenCV+TensorFlow深度學習與計算機視覺實戰》等圖書。
圖書目錄
第1章 TensorFlow 2.0的安裝 1
1.1 Python基本安裝和用法 1
1.1.1 Anaconda的下載與安裝 1
1.1.2 Python編譯器PyCharm的安裝 4
1.1.3 使用Python計算softmax函式 7
1.2 TensorFlow 2.0 GPU版本的安裝 8
1.2.1 檢測Anaconda中的TensorFlow版本 8
1.2.2 TensorFlow 2.0 GPU版本基礎顯示卡推薦和前置軟體安裝 9
1.3 Hello TensorFlow 2.0 12
1.4 本章小結 13
第2章 TensorFlow 2.0令人期待的變化 14
2.1 新的架構、新的運行、新的開始 14
2.1.1 API精簡 15
2.1.2 Eager Execution 15
2.1.3 取消全局變數 15
2.1.4 使用函式而不是會話 15
2.1.5 棄用collection 16
2.2 配角轉成主角:從TensorFlow Eager Execution轉正談起 16
2.2.1 Eager簡介與調用 17
2.2.2 讀取數據 18
2.3 使用TensorFlow 2.0模式進行線性回歸的一個簡單例子 20
2.3.1 模型的工具與數據的生成 20
2.3.2 模型的定義 20
2.3.3 損失函式的定義 21
2.3.4 梯度函式的更新計算 21
2.4 TensorFlow 2.0進階—AutoGraph和tf.function 23
2.5 本章小結 26
第3章 TensorFlow 和 Keras 27
3.1 模型!模型!模型!還是模型 27
3.2 使用Keras API實現鳶尾花分類的例子(順序模式) 28
3.2.1 數據的準備 29
3.2.2 數據的處理 30
3.2.3 梯度更新函式的寫法 31
3.2.4 使用Keras 函式式編程實現鳶尾花分類的例子(重點) 32
3.2.5 使用保存的Keras模式對模型進行復用 35
3.2.6 使用TensorFlow 2.0標準化編譯對iris模型進行擬合 35
3.3 多輸入單一輸出TensorFlow 2.0 編譯方法(選學) 40
3.3.1 數據的獲取與處理 40
3.3.2 模型的建立 41
3.3.3 數據的組合 41
3.4 多輸入多輸出TensorFlow 2.0 編譯方法(選學) 44
3.5 全連線層詳解 46
3.5.1 全連線層的定義與實現 46
3.5.2 使用TensorFlow 2.0自帶的API實現全連線層 47
3.5.3 列印顯示TensorFlow 2.0設計的模型結構和參數 51
3.6 本章小結 53
第4章 TensorFlow 2.0語法基礎 54
4.1 BP神經網路簡介 54
4.2 BP神經網路的兩個基礎算法 58
4.2.1 最小二乘法(LS算法) 58
4.2.2 道士下山的故事—梯度下降算法 61
4.3 反饋神經網路反向傳播算法 63
4.3.1 深度學習基礎 63
4.3.2 鏈式求導法則 64
4.3.3 反饋神經網路原理與公式推導 66
4.3.4 反饋神經網路原理的激活函式 72
4.3.5 反饋神經網路原理的Python實現 73
4.4 本章小結 78
第5章 卷積層與MNIST實戰 79
5.1 卷積運算 79
5.1.1 卷積運算的基本概念 80
5.1.2 TensorFlow 2.0中卷積函式的實現 81
5.1.3 池化運算 83
5.1.4 softmax激活函式 84
5.1.5 卷積神經網路原理 86
5.2 TensorFlow 2.0編程實戰:MNIST手寫體識別 89
5.2.1 MNIST數據集 89
5.2.2 MNIST數據集特徵和標註 91
5.2.3 TensorFlow 2.0編程實戰:MNIST數據集 93
5.2.4 使用自定義的卷積層實現MNIST識別 97
5.3 本章小結 101
第6章 TensorFlow 2.0 Dataset 使用詳解 102
6.1 Dataset API基本結構和內容 102
6.1.1 Dataset API數據種類 103
6.1.2 Dataset API基礎使用 104
6.2 Dataset API高級用法 105
6.2.1 Dataset API數據轉換方法 107
6.2.2 讀取圖片數據集的例子 110
6.3 使用TFRecord API創建和使用數據集 111
6.3.1 TFRecord的基本概念 112
6.3.2 TFRecord的創建 113
6.3.3 TFRecord的讀取 118
6.4 TFRecord實戰:帶有處理模型的完整例子 124
6.4.1 創建數據集 125
6.4.2 創建解析函式 125
6.4.3 創建數據模型 126
6.4.4 創建讀取函式 126
6.5 本章小結 128
第7章 TensorFlow Datasets和TensorBoard詳解 129
7.1 TensorFlow Datasets簡介 129
7.1.1 Datasets 數據集的安裝 131
7.1.2 Datasets 數據集的使用 131
7.2 Datasets數據集的使用—FashionMNIST 133
7.2.1 FashionMNIST數據集下載與顯示 134
7.2.2 模型的建立與訓練 136
7.3 使用Keras對FashionMNIST數據集進行處理 138
7.3.1 獲取數據集 138
7.3.2 數據集的調整 139
7.3.3 使用Python類函式建立模型 139
7.3.4 模型的查看和參數的列印 141
7.3.5 模型的訓練和評估 142
7.4 使用TensorBoard可視化訓練過程 144
7.4.1 TensorBoard的資料夾設定 145
7.4.2 顯式地調用TensorBoard 146
7.4.3 使用TensorBoard 148
7.5 本章小結 152
第8章 從冠軍開始:ResNet 153
8.1 ResNet基礎原理與程式設計基礎 153
8.1.1 ResNet誕生的背景 154
8.1.2 模組工具的TensorFlow實現—不要重複發明輪子 157
8.1.3 TensorFlow高級模組layers的用法 157
8.2 ResNet實戰:CIFAR-100數據集分類 165
8.2.1 CIFAR-100數據集 165
8.2.2 ResNet殘差模組的實現 168
8.2.3 ResNet網路的實現 170
8.2.4 使用ResNet對CIFAR-100數據集進行分類 173
8.3 ResNet的兄弟—ResNeXt 175
8.3.1 ResNeXt誕生的背景 175
8.3.2 ResNeXt殘差模組的實現 177
8.3.3 ResNeXt網路的實現 178
8.3.4 ResNeXt和ResNet的比較 180
8.4 本章小結 180
第9章 注意力機制 181
9.1 何為“注意力” 181
9.2 注意力機制的兩種常見形式 182
9.2.1 Hard Attention(硬性注意力) 183
9.2.2 Soft Attention(軟性注意力) 183
9.3 注意力機制的兩種實現形式 183
9.3.1 Spatial Attention(空間注意力) 184
9.3.2 Channel Attention(通道注意力) 185
9.4 注意力機制的兩種經典模型 186
9.4.1 最後的冠軍—SENet 186
9.4.2 結合Spatial和Channel的CBAM模型 189
9.4.3 注意力的前沿研究—基於細粒度的圖像注意力機制 194
9.5 本章小結 196
第10章 卷積神經網路實戰:識文斷字也可以 197
10.1 文本數據處理 198
10.1.1 數據集介紹和數據清洗 198
10.1.2 停用詞的使用 201
10.1.3 詞向量訓練模型word2vec的使用 203
10.1.4 文本主題的提取:基於TF-IDF(選學) 207
10.1.5 文本主題的提取:基於TextRank(選學) 211
10.2 針對文本的卷積神經網路模型—字元卷積 214
10.2.1 字元(非單詞)文本的處理 214
10.2.2 卷積神經網路文本分類模型的實現—Conv1D(一維卷積) 222
10.3 針對文本的卷積神經網路模型—詞卷積 224
10.3.1 單詞的文本處理 224
10.3.2 卷積神經網路文本分類模型的實現—Conv2D(二維卷積) 227
10.4 使用卷積對文本分類的補充內容 230
10.4.1 漢字的文本處理 230
10.4.2 其他的細節 233
10.5 本章小結 233