深度學習之 TensorFlow:入門、原理與進階實戰 深度学习之TensorFlow:入门、原理与进阶实战

李金洪

  • 出版商: 機械工業
  • 出版日期: 2018-03-01
  • 定價: $594
  • 售價: 7.9$469
  • 語言: 簡體中文
  • 頁數: 487
  • 裝訂: 平裝
  • ISBN: 7111590058
  • ISBN-13: 9787111590057
  • 相關分類: DeepLearningTensorFlow
  • 立即出貨

買這商品的人也買了...

商品描述

本書通過96個案例,全面講解了深度學習神經網絡原理和TensorFlow使用方法。
全書共分為3篇,靠前篇深度學習與TensorFlow基礎,
包括快速瞭解人工智能與TensorFlow、
搭建開發環境、TensorFlow基本開發步驟、TensorFlow編程基礎、
識別圖中模糊的手寫數字等內容;第2篇深度學習基礎——神經網絡,
介紹了神經網絡的基礎模型,包括單個神經元、多層神經網絡、
捲積神經網絡、循環神經網絡、自編碼網絡等內容;
第3篇深度學習進階,是對基礎網絡模型的靈活運用與自由組合,
是對前面知識的綜合及拔高,包括深度神經網絡和對抗神經網絡兩章內容。
本書特別適合TensorFlow深度學習的初學者和進階讀者閱讀,
也適合社會培訓班和各大院校對深度學習有興趣的學生閱讀。

目錄大綱

配套學習資源
前言

第1篇深度學習與TensorFlow基礎
第1章快速了解人工智能與TensorFlow2 
1.1什麼是深度學習2 
1.2 TensorFlow是做什麼的3 
1.3 TensorFlow的特點4 
1.4其他深度學習框架特點及介紹5 
1.5如何通過本書學好深度學習6 
1.5.1深度學習怎麼學6 
1.5.2如何學習本書7 

第2章搭建開發環境8 
2.1下載及安裝Anaconda開發工具8 
2.2在Windows平台下載及安裝TensorFlow11 
2.3 GPU版本的安裝方法12 
2.3.1安裝CUDA軟件包12 
2.3.2安裝cuDNN庫13 
2.3.3測試顯卡14 
2.4熟悉Anaconda 3開發工具15 
2.4.1快速了解Spyder16 
2.4.2快速了解Jupyter Notebook18 

第3章TensorFlow基本開發步驟——以邏輯回歸擬合二維數據為例19 
3.1實例1:從一組看似混亂的數據中找出y≈2x的規律19 
3.1.1準備數據20 
3.1.2搭建模型21 
3.1.3迭代訓練模型23 
3.1.4使用模型25
3.2模型是如何訓練出來的25 
3.2.1模型裡的內容及意義25 
3.2.2模型內部的數據流向26 
3.3了解TensorFlow開發的基本步驟27 
3.3.1定義輸入節點的方法27 
3.3.2實例2:通過字典類型定義輸入節點28 
3.3.3實例3:直接定義輸入節點28 
3.3.4定義“學習參數”的變量29 
3.3.5實例4:通過字典類型定義“學習參數”29 
3.3.6定義“運算”29 
3.3.7優化函數,優化目標30 
3.3.8初始化所有變量30 
3.3.9迭代更新參數到優解31 
3.3.10測試模型31 
3.3.11使用模型31 

第4章TensorFlow編程基礎32 
4.1編程模型32 
4.1.1了解模型的運行機制33 
4.1.2實例5:編寫hello world程序演示session的使用34 
4.1.3實例6:演示with session的使用35 
4.1.4實例7:演示注入機制35 
4.1.5建立session的其他方法36 
4.1.6實例8:使用注入機制獲取節點36 
4.1.7指定GPU運算37 
4.1.8設置GPU使用資源37 
4.1.9保存和載入模型的方法介紹38
4.1.10實例9:保存/載入線性回歸模型38 
4.1.11實例10:分析模型內容,演示模型的其他保存方法40 
4.1.12檢查點(Checkpoint)41 
4.1.13實例11:為模型添加保存檢查點41 
4.1.14實例12:更簡便地保存檢查點44 
4.1.15模型操作常用函數總結45 
4.1.16 TensorBoard可視化介紹45 
4.1.17實例13:線性回歸的TensorBoard可視化46 
4.2 TensorFlow基礎類型定義及操作函數介紹48 
4.2.1張量及操作49 
4.2.2算術運算函數55 
4.2.3矩陣相關的運算56 
4.2.4複數操作函數58 
4.2.5規約計算59 
4.2.6分割60 
4.2.7序列比較與索引提取61 
4.2.8錯誤類62 
4.3共享變量62 
4.3.1共享變量用途62 
4.3.2使用get—variable獲取變量63 
4.3.3實例14:演示get_variable和Variable的區別63 
4.3.4實例15:在特定的作用域下獲取變量65 
4.3.5實例16:共享變量功能的實現66 
4.3.6實例17:初始化共享變量的作用域67 
4.3.7實例18:演示作用域與操作符的受 範圍68
4.4實例19:圖的基本操作70 
4.4.1建立圖70 
4.4.2獲取張量71 
4.4.3獲取節點操作72 
4.4.4獲取元素列表73 
4.4.5獲取對象73 
4.4.6練習題74 
4.5配置分佈式TensorFlow74 
4.5.1分佈式TensorFlow的角色及原理74 
4.5.2分佈部署TensorFlow的具體方法75 
4.5.3實例20:使用TensorFlow實現分佈式部署訓練75 
4.6動態圖(Eager)81 
4.7數據集(tf .data)82 

第5章識別圖中模糊的手寫數字(實例21)83 
5.1導入圖片數據集84 
5.1.1 MNIST數據集介紹84 
5.1.2下載並安裝MNIST數據集85 
5.2分析圖片的特點,定義變量87 
5.3構建模型87 
5.3.1定義學習參數87 
5.3.2定義輸出節點88 
5.3.3定義反向傳播的結構88 
5.4訓練模型並輸出中間狀態參數89 
5.5測試模型90 
5.6保存模型91 
5.7讀取模型92 

第2篇深度學習基礎——神經網絡

第6章單個神經元96 
6.1神經元的擬合原理96
6.1.1正向傳播98 
6.1.2反向傳播98 
6.2激活函數——加入非線性因素,解決線性模型缺陷99 
6.2.1 Sigmoid函數99 
6.2.2 Tanh函數100 
6.2.3 ReLU函數101 
6.2.4 Swish函數103 
6.2.5激活函數總結103 
6.3 softmax算法——處理分類問題103 
6.3.1什麼是softmax104 
6.3.2 softmax原理104 
6.3.3常用的分類函數105 
6.4損失函數——用真實值與預測值的距離來指導模型的收斂方向105 
6.4.1損失函數介紹105 
6.4.2 TensorFlow中常見的loss函數106 
6.5 softmax算法與損失函數的綜合應用108 
6.5.1實例22:交叉熵實驗108 
6.5.2實例23:one_hot實驗109 
6.5.3實例24:sparse交叉熵的使用110 
6.5.4實例25:計算loss值110 
6.5.5練習題111 
6.6梯度下降——讓模型逼近小偏差111 
6.6.1梯度下降的作用及分類111 
6.6.2 TensorFlow中的梯度下降函數112 
6.6.3退化學習率——在訓練的速度與精度之間找到平衡113
6.6.4實例26:退化學習率的用法舉例114 
6.7初始化學習參數115 
6.8單個神經元的擴展——Maxout網絡116 
6.8.1 Maxout介紹116 
6.8.2實例27:用Maxout網絡實現MNIST分類117 
6.9練習題118 

第7章多層神經網絡——解決非線性問題119 
7.1線性問題與非線性問題119 
7.1.1實例28:用線性單分邏輯回歸分析腫瘤是良性還是惡性的119 
7.1.2實例29:用線性邏輯回歸處理多分類問題123 
7.1.3認識非線性問題129 
7.2使用隱藏層解決非線性問題130 
7.2.1實例30:使用帶隱藏層的神經網絡擬合異或操作130 
7.2.2非線絡的可視化及其意義133 
7.2.3練習題135 
7.3實例31:利用全連接網絡將圖片進行分類136 
7.4全連接網絡訓練中的優化技巧137 
7.4.1實例32:利用異或數據集演示過擬合問題138 
7.4.2正則化143 
7.4.3實例33:通過正則化改善過擬合情況144 
7.4.4實例34:通過增大數據集改善過擬合145 
7.4.5練習題146 
7.4.6 dropout——訓練過程中,將部分神經單元暫時丟棄146 
7.4.7實例35:為異或數據集模型添加dropout147
7.4.8實例36:基於退化學習率dropout技術來擬合異或數據集149 
7.4.9全連接網絡的深淺關係150 
7.5練習題150 

第8章卷積神經網絡——解決參數太多問題151 
8.1全連接網絡的局限性151 
8.2理解卷積神經網絡152 
8.3網絡結構153 
8.3.1網絡結構描述153 
8.3.2卷積操作155 
8.3.3池化層157 
8.4卷積神經網絡的相關函數158 
8.4. 1卷積函數tf.nn.conv2d158 
8.4.2 padding規則介紹159 
8.4.3實例37:卷積函數的使用160 
8.4.4實例38:使用卷積提取圖片的輪廓165 
8.4.5池化函數tf. nn.max_pool(avg_pool)167 
8.4.6實例39:池化函數的使用167 
8.5使用卷積神經網絡對圖片分類170 
8.5.1 CIFAR介紹171 
8.5.2下載CIFAR數據172 
8.5.3實例40:導入並顯示CIFAR數據集173 
8.5.4實例41:顯示CIFAR數據集的原始圖片174 
8.5.5 cifar10_input的其他功能176 
8.5.6在TensorFlow中使用queue176 
8.5.7實例42:協調器的用法演示178
8.5.8實例43:為session中的隊列加上協調器179 
8.5.9實例44:建立一個帶有全局平均池化層的捲積神經網絡180 
8.5.10練習題183 
8.6反捲積神經網絡183 
8.6.1反捲積神經網絡的應用場景184 
8.6.2反捲積原理184 
8.6.3實例45:演示反捲積的操作185 
8.6.4反池化原理188 
8.6.5實例46:演示反池化的操作189 
8.6.6實例47:演示gradients基本用法192 
8.6.7實例48:使用gradients對多個式子求多變量偏導192 
8.6.8實例49:演示梯度停止的實現193 
8.7實例50:用反捲積技術復原卷積網絡各層圖像195 
8.8善用函數封裝庫198 
8.8.1實例51:使用函數封裝庫重寫CIFAR卷積網絡198 
8.8.2練習題201 
8.9深度學習的模型訓練技巧201 
8.9.1實例52:優化卷積核技術的演示201 
8.9.2實例53:多通道卷積技術的演示202 
8.9.3批量歸一化204 
8.9.4實例54:為CIFAR圖片分類模型添加BN207 
8.9.5練習題209 
…… 

第9章循環神經網絡—— 有記憶功能的網絡210 
第10章自編碼網絡——能夠自學習樣本特徵的網絡346
第3篇深度學習進階
第11章深度神經網絡392 
第12章對抗神經網絡(GAN)430