TensorFlow深度學習應用實踐( 簡體 字) | |
作者:王曉華 | 類別:1. -> 程式設計 -> 深度學習 |
出版社:清華大學出版社 | 3dWoo書號: 48335 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:1/1/2018 | |
頁數:450 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302487951 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章星星之火 1
1.1計算機視覺與深度學習 1 1.1.1人類視覺神經的啟迪 2 1.1.2計算機視覺的難點與人工神經網絡 3 1.1.3應用深度學習解決計算機視覺問題 4 1.2計算機視覺學習的基礎與研究方向 5 1.2.1學習計算機視覺結構圖 5 1.2.2計算機視覺的學習方式和未來趨勢 6 1.3本章小結 7 第2章Python的安裝與使用 8 2.1Python基本安裝和用法 8 2.1.1Anaconda的下載與安裝 9 2.1.2Python編譯器PyCharm的安裝 12 2.1.3使用Python計算softmax函數 16 2.2Python常用類庫中的threading 17 2.2.1threading庫的使用 18 2.2.2threading模塊中最重要的Thread類 18 2.2.3threading中的Lock類 19 2.2.4threading中的join類 20 2.3本章小結 21 第3章深度學習的理論基礎——機器學習 22 3.1機器學習基本分類 22 3.1.1基于學科的分類 22 3.1.2基于學習模式的分類 23 3.1.3基于應用領域的分類 23 3.2機器學習基本算法 24 3.2.1機器學習的算法流程 24 3.2.2基本算法的分類 25 3.3算法的理論基礎 26 3.3.1小學生的故事——求圓的面積 27 3.3.2機器學習基礎理論——函數逼近 27 3.4回歸算法 29 3.4.1函數逼近經典算法——線性回歸 29 3.4.2線性回歸的姐妹——邏輯回歸 31 3.5機器學習的其他算法——決策樹 32 3.5.1水晶球的秘密 32 3.5.2決策樹的算法基礎——信息熵 33 3.5.3決策樹的算法基礎——ID3算法 34 3.6本章小結 35 第4章Python類庫的使用——數據處理及可視化展示 37 4.1從小例子起步——NumPy的初步使用 37 4.1.1數據的矩陣化 37 4.1.2數據分析 39 4.1.3基于統計分析的數據處理 40 4.2圖形化數據處理——Matplotlib包使用 41 4.2.1差異的可視化 41 4.2.2坐標圖的展示 42 4.2.3玩個大的 44 4.3深度學習理論方法——相似度計算 46 4.3.1基于歐幾里得距離的相似度計算 46 4.3.2基于余弦角度的相似度計算 47 4.3.3歐幾里得相似度與余弦相似度的比較 48 4.4數據的統計學可視化展示 49 4.4.1數據的四分位 49 4.4.2數據的四分位示例 50 4.4.3數據的標準化 53 4.4.4數據的平行化處理 55 4.4.5熱點圖——屬性相關性檢測 57 4.5Python實戰——某地降水的關系處理 58 4.5.1不同年份的相同月份統計 58 4.5.2不同月份之間的增減程度比較 59 4.5.3每月降水不相關嗎 60 4.6本章小結 61 第5章OpenCV的基礎使用 62 5.1OpenCV基本的圖片讀取 62 5.1.1基本的圖片存儲格式 62 5.1.2圖像的讀取與存儲 64 5.1.3圖像的轉換 65 5.1.4使用NumPy模塊對圖像進行編輯 66 5.2OpenCV的卷積核處理 68 5.2.1計算機視覺的三種不同色彩空間 68 5.2.2卷積核與圖像特征提取 68 5.2.3卷積核進階 70 5.3本章小結 72 第6章OpenCV與TensorFlow的融合 73 6.1圖片的自由縮放以及邊緣裁剪 73 6.1.1圖像的擴縮裁挖 73 6.1.2圖像色調的調整 74 6.1.3圖像的旋轉、平移和翻轉 76 6.2使用OpenCV擴大圖像數據庫 77 6.2.1圖像的隨機裁剪 77 6.2.2圖像的隨機旋轉變換 78 6.2.3圖像色彩的隨機變換 79 6.2.4對鼠標的監控 80 6.3本章小結 81 第7章Let’splayTensorFlow 82 7.1TensorFlow游樂場 82 7.1.1Iwanttoplayagame 82 7.1.2TensorFlow游樂場背后的故事 86 7.1.3如何訓練神經網絡 88 7.2初識HelloTensorFlow 89 7.2.1TensorFlow名稱的解釋 89 7.2.2TensorFlow基本概念 89 7.2.3TensorFlow基本架構 92 7.3本章小結 93 第8章HelloTensorFlow,從0到1 94 8.1TensorFlow的安裝 94 8.2TensorFlow常量、變量和數據類型 96 8.3TensorFlow矩陣計算 100 8.4HelloTensorFlow 102 8.5本章小結 107 第9章TensorFlow重要算法基礎 108 9.1BP神經網絡簡介 108 9.2BP神經網絡中的兩個基礎算法 110 9.2.1最小二乘法(LS算法)詳解 111 9.2.2道士下山的故事——梯度下降算法 113 9.3TensorFlow實戰——房屋價格的計算 116 9.3.1數據收集 117 9.3.2模型的建立與計算 117 9.3.3TensorFlow程序設計 119 9.4反饋神經網絡反向傳播算法 121 9.4.1深度學習基礎 121 9.4.2鏈式求導法則 122 9.4.3反饋神經網絡原理與公式推導 124 9.4.4反饋神經網絡原理的激活函數 129 9.4.5反饋神經網絡原理的Python實現 130 9.5本章小結 136 第10章TensorFlow數據的生成與讀取詳解 137 10.1TensorFlow的隊列 137 10.1.1隊列的創建 137 10.1.2線程同步與停止 141 10.1.3隊列中數據的讀取 142 10.2CSV文件的創建與讀取 143 10.2.1CSV文件的創建 143 10.2.2CSV文件的讀取 144 10.3TensorFlow文件的創建與讀取 146 10.3.1TFRecords文件的創建 146 10.3.2TFRecords文件的讀取 149 10.3.3圖片文件的創建與讀取 150 10.4本章小結 155 第11章回歸分析——從TensorFlow陷阱與細節開始 156 11.1TensorFlow線性回歸 156 11.1.1線性回歸詳解與編程實戰 157 11.1.2線性回歸編程中的陷阱與細節設計 159 11.1.3TensorFlow多元線性回歸 163 11.2多元線性回歸實戰編程 166 11.2.1多元線性回歸實戰的編程——房屋價格計算 166 11.2.2多元線性回歸實戰的推廣——數據的矩陣化 168 11.3邏輯回歸詳解 174 11.3.1邏輯回歸不是回歸算法 174 11.3.2常用的邏輯回歸特征變化與結果轉換 175 11.3.3邏輯回歸的損失函數 176 11.3.4邏輯回歸編程實戰——胃癌的轉移判斷 178 11.4本章小結 181 第12章TensorFlow編程實戰——MNIST手寫體識別 183 12.1MNIST數據集 183 12.1.1MNIST是什么 183 12.1.2MNIST數據集的特征和標簽 185 12.2MNIST數據集實戰編程 187 12.2.1softmax激活函數 187 12.2.2MNIST編程實戰 189 12.2.3為了更高的準確率 192 12.2.4增加更多的深度 193 12.3初識卷積神經網絡 195 12.3.1卷積神經網絡 196 12.3.2卷積神經網絡的程序編寫 196 12.3.3多層卷積神經網絡的程序編寫 199 12.4本章小結 201 第13章卷積神經網絡原理 202 13.1卷積運算基本概念 202 13.1.1卷積運算 203 13.1.2TensorFlow中卷積函數實現詳解 204 13.1.3使用卷積函數對圖像感興趣區域進行標注 208 13.1.4池化運算 210 13.1.5使用池化運算加強卷積特征提取 212 13.2卷積神經網絡的結構詳解 213 13.2.1卷積神經網絡原理 213 13.2.2卷積神經網絡的應用實例——LeNet5網絡結構 216 13.2.3卷積神經網絡的訓練 218 13.3TensorFlow實現LeNet實例 219 13.3.1LeNet模型分解 219 13.3.2使用ReLU激活函數代替sigmoid 223 13.3.3程序的重構——模塊化設計 227 13.3.4卷積核和隱藏層參數的修改 231 13.4本章小結 237 第14章卷積神經網絡公式推導與應用 238 14.1反饋神經網絡算法 238 14.1.1經典反饋神經網絡正向與反向傳播公式推導 238 14.1.2卷積神經網絡正向與反向傳播公式推導 241 14.2使用卷積神經網絡分辨CIFAR-10數據集 249 14.2.1CIFAR-10數據集下載與介紹 249 14.2.2CIFAR-10模型的構建與數據處理 251 14.2.3CIFAR-10模型的細節描述與參數重構 260 14.3本章小結 261 第15章貓狗大戰——實戰AlexNet 262 15.1AlexNet簡介 263 15.1.1AlexNet模型解讀 263 15.1.2AlexNet程序的實現 266 15.2實戰貓狗大戰——AlexNet模型 270 15.2.1數據的收集與處理 271 15.2.2模型的訓練與存儲 276 15.2.3使用訓練過的模型預測圖片 281 15.2.4使用Batch_Normalization正則化處理數據集 288 15.3本章小結 297 第16章我們都愛Finetuning——復用VGG16進行貓狗大戰 298 16.1TensorFlow模型保存與恢復詳解 298 16.1.1TensorFlow保存和恢復函數的使用 298 16.1.2多次模型的保存和恢復 299 16.1.3實戰TensorFlow模型的存儲與恢復 300 16.2更為細化的保存和恢復方法 304 16.2.1存儲文件的解讀 304 16.2.2更細節地對模型進行恢復和處理 305 16.3VGGNet實現 309 16.3.1VGGNet模型解讀及與AlexNet比較 309 16.3.2VGGNet模型的TensorFlow實現 311 16.4使用已訓練好的模型和權重復現VGGNet 315 16.4.1npz文件的讀取 316 16.4.2復用的VGGNet模型定義 317 16.4.3保存復用的VGGNet模型為TensorFlow格式 323 16.5貓狗大戰V2——Finetuning使用VGGNet進行圖像判斷 324 16.5.1Finetuning基本理解 324 16.5.2貓狗大戰——Finetuning使用VGGNet 326 16.6本章小結 336 第17章開始找工作吧——深度學習常用面試問題答疑 337 17.1深度學習面試常用問題答疑 337 17.1.1如何降低過擬合 338 17.1.2全連接層詳解 342 17.1.3激活函數起作用的原因 342 17.1.4卷積后的圖像大小 343 17.1.5池化層的作用 343 17.1.6為什么在最后分類時使用softmax而不是傳統的SVM 343 17.2卷積神經網絡調優面試問答匯總 343 17.2.1數據集的注意事項 343 17.2.2卷積模型訓練的注意事項 344 17.3NIN模型介紹 344 17.3.1NIN模型簡介 344 17.3.2貓狗大戰——NIN的代碼實現 345 17.4“deeperisbetter”——GoogLeNet模型介紹 350 17.4.1GoogLeNet模型的介紹 350 17.4.2GoogLeNet模型單元的TensorFlow實現 352 17.4.3GoogLeNet模型的一些注意事項 354 17.5本章小結 355 第18章暫時的冠軍——ResNet簡介及TensorFlow實現 356 18.1ResNet模型簡介 356 18.1.1ResNet模型定義 357 18.1.2定義工具的TensorFlow實現 359 18.1.3ResNet模型的TensorFlow實現 360 18.2新興的卷積神經模型簡介 362 18.2.1SqueezeNet模型簡介 362 18.2.2Xception模型簡介 365 18.3本章小結 366 第19章TensorFlow高級API——Slim使用入門 368 19.1Slim詳解 368 19.2Slim使用方法介紹 369 19.2.1Slim中變量使用方法介紹 369 19.2.2Slim中層的使用方法介紹 373 19.2.3Slim中參數空間使用方法介紹 375 19.3實戰——使用Slim定義VGG16 377 19.3.1VGG16結構圖和TensorFlow定義 377 19.3.2使用Slim創建VGG16并訓練 379 19.4實戰——使用Slim設計多層感知器(MLP) 382 19.4.1MLP的Slim實現 383 19.4.2MLP模型的評估 392 19.5Slim數據讀取方式 394 19.5.1Slim數據讀取格式 394 19.5.2生成TFRecords格式數據 395 19.5.3使用Slim讀取TFRecords格式數據 398 19.6本章小結 399 第20章Slim使用進階 400 20.1使用Slim創建卷積神經網絡(CNN) 400 20.1.1數據集獲取 400 20.1.2創建卷積神經網絡 403 20.1.3訓練Slim創建的卷積網絡 405 20.2使用Slim預訓練模型進行Finetuning 407 20.2.1Inception-ResNet-v2模型簡介 407 20.2.2使用Inception-ResNet-v2預訓練模型參數 408 20.2.3修改Inception-ResNet-v2預訓練模型輸出層級 415 20.3本章小結 419 第21章全卷積神經網絡圖像分割入門 420 21.1全卷積神經網絡進行圖像分割的理論基礎 420 21.1.1全連接層和全卷積層 421 21.1.2反卷積(upsampling)計算 423 21.2全卷積神經網絡進行圖像分割的分步流程與編程基礎 425 21.2.1使用VGG16進行圖像識別 425 21.2.2上采樣(upsampling)詳解 428 21.2.3一種常用的卷積核——雙線插值 430 21.2.4實戰——使用VGG16全卷積網絡進行圖像分割 434 21.3本章小結 438 第22章不服就是GAN——對抗生成網絡 439 22.1對抗生成網絡詳解 439 22.1.1GAN的基本原理介紹 440 22.1.2簡單GAN的TensorFlow實現 443 22.2從0到1——實戰:使用GAN生成手寫體數字 449 22.2.1分步驟簡介 450 22.2.2GAN網絡的訓練 455 22.3本章小結 458 本書總的指導思想是在掌握深度學習的基本知識和特性的基礎上,培養使用TensorFlow進行實際編程以解決圖像處理相關問題的能力。全書力求深入淺出,通過通俗易懂的語言和詳細的程序分析,介紹TensorFlow的基本用法、高級模型設計和對應的程序編寫。
本書共22章,內容包括Python類庫的安裝和使用、TensorFlow基本數據結構和使用、TensorFlow數據集的創建與讀取、人工神經網絡、反饋神經網絡、全卷積神經網絡的理論基礎、深度學習模型的創建、模型的特性、算法、ResNet、Slim、GAN等。本書強調理論聯系實際,重點介紹TensorFlow編程解決圖像識別的應用,提供了大量數據集,并以代碼的形式實現了深度學習模型,以供讀者參考。 本書既可作為學習人工神經網絡、深度學習、TensorFlow程序設計以及圖像處理等相關內容的程序設計人員培訓和自學用書,也可作為高等院校和培訓機構相關專業的教材。 推薦序
第一次見王曉華是他來我這里做培訓,我正好路過門口,聽見教室里笑聲震天,就好奇地伸頭進去看看。一個胖胖的男孩在給一群我們新招的工作人員做培訓,好像是在講代碼方面的問題。可以看得出他講得非常好,底下的聽講者都在抬著頭認真聽他講課。要知道其中不乏有清華、北大的佼佼者,而他,卻能夠輕車熟路地引導他們的思路,駕馭整個課堂。 后來正式認識他也是機緣巧合,一位計算機專業的老同事問我有沒有興趣審閱一本云計算方面的書,當時云計算正好是IT熱點,我也想乘此機會做一個了解,就欣然答應。因為我平常也做計算機方面的教學工作,對于教材好壞的敏感性是非常強烈的。有些書雖然署名是中國人,但是很多內容直接就是對外國教材的翻譯,既然翻譯就要做到“信達雅”,而往往連最基本的“信”都做不到,根本不適合初學者或者學生使用。因此當剛拿到這本書的初稿時,我也有疑慮——是不是又是一本翻譯的書,他寫的書我是不是能看懂。抱著這些疑慮,我翻開書稿的第一頁,從前言開始,逐漸向我們展示了云計算編程中一個美麗而神秘的世界。全書使用淺顯易懂的語句,對每個知識點進行重點分析,同時列舉了大量的編程實例,向讀者講解每個類、每個語句的用法,還特別細心地對每條代碼做出注釋。其用心之嚴密,著實讓人感嘆。 后來我們正式見面于南京工業大學的怡園,那天我記得很清楚,外面細雨打著蕉葉,我品著綠茶慢慢地陷入沉思。一聲“殷老師”將我從思索的世界拉回現實。面前站立著一個戴著眼鏡,略微顯得羞澀而緊張的男孩,從他那胖胖的身形,我依稀覺得在哪見過。“哦,你就是王曉華。”“嗯,是的,我是王曉華,謝謝您抽時間給我審稿。”他首先向我表示感謝。我突然感覺有點不好意思,因為其實我也不是太懂,部分是出于學習的目的審閱此書,而此時這個年輕人一口一個殷老師地叫著,謙虛得很。 此次見面,我們交談甚歡,從云計算談起,談到了TensorFlow的開源,談到了深度學習對商業領域產生的影響和其中蘊含的商機,又談到了人工智能會對未來社會帶來的變革。他一改初見我時青澀稚嫩的形象,侃侃而談。可以看得出他是對這行真正用心去了解的人,不由得對他刮目相看,并萌生了為其作序的想法。這也就是這篇序的來歷。 說了那么多,下面介紹一下這本書吧。首先這本書是介紹人工智能和深度學習的。可能不少人和曾經的我一樣有很多疑問,許多以前必須由人工完成的任務,人工神經網絡能否為我們代勞?很多人不相信,直至神經網絡真的做到了這一點。 人工神經網絡在各個領域逐步深入人類社會,基于卷積神經網絡的圖像描述可以給每幅圖片打上獨特的標簽,借助于循環神經網絡的語音識別將推動物聯網革命,人工智能絕對是一場深刻的革命,確實在改變我們的生活。雖然我在此僅僅提及了圖像、語音和行為三個方面,但是對于人工智能的機會來說遠不止這三個方面,在自然語言處理、生物技術等方面,人工智能也有很多東西可以做,這些領域都有創新正在發生,人工智能也可以更多地被應用到機器人的開發中。 我覺得,這本書是寫給有志于深度學習的人看的,書中不僅有TensorFlow程序設計的方法介紹,更多的是傳遞作者對深度學習和人工智能未來發展的思考。我希望這本書能夠將更多的有志之士帶到這一條通向未來的輝煌之路上來,從而造就更多的人才。 南京工業大學 殷芳 |