前 言
TensorFlow從誕生之初即作為全球人工智能領(lǐng)域最受使用者歡迎的人工智能開源框架,榮獲了太多的贊譽與光環(huán),見證了人工智能在全球范圍的興起并引領(lǐng)了全行業(yè)的研究方向,改變了固有的人類處理問題和解決問題的方法和認(rèn)知,引領(lǐng)了深度學(xué)習(xí)和人工智能領(lǐng)域的全面發(fā)展和成長壯大。它的出現(xiàn)使得深度學(xué)習(xí)的學(xué)習(xí)門檻被大大降低,不僅是數(shù)據(jù)專家,就連普通的程序設(shè)計人員甚至于相關(guān)專業(yè)的學(xué)生都可以用其來開發(fā)新的AI程序,而不需要深厚的算法理論和編程功底。
可以說,TensorFlow是現(xiàn)代社會人類一項最有前途和意義的發(fā)明,并且將繼續(xù)發(fā)揚光大。
如同人類的孩子一樣,TensorFlow自2016年誕生以來,在不斷發(fā)展和前行的這3年里,在承受榮譽的同時,TensorFlow也遭到了大量的批評,遇到了很多對手。但是TensorFlow的創(chuàng)造者和用戶并沒有因此而懊惱,而是不斷學(xué)習(xí),吸收大量使用者的建議,以及競爭對手中好的易用的特性與方法,從而不斷充實和壯大自己。
終于在TensorFlow年滿3歲之際,TensorFlow迎來了一項革命性的變化,TensorFlow 2橫空出世,作為一個重要的里程碑,其理解和目標(biāo)由注重自身框架結(jié)構(gòu)的完整和邏輯性轉(zhuǎn)向為偏重于“易用性”,使得初學(xué)者和使用者能夠在極低的門檻上掌握和使用,TensorFlow 2的目標(biāo)就是讓每個人都能使用人工智能技術(shù)幫助自己的學(xué)習(xí)和生活的提高。
本書以TensorFlow 2.1版本為基礎(chǔ)進(jìn)行編寫,從TensorFlow 2.1的基礎(chǔ)語法開始,到使用TensorFlow 2.1進(jìn)行深度學(xué)習(xí)程序的設(shè)計和實戰(zhàn)編寫,全面介紹TensorFlow 2.1核心內(nèi)容和各方面涉及的相關(guān)知識。
本書對TensorFlow 2.1核心內(nèi)容進(jìn)行深入分析,重要內(nèi)容均結(jié)合代碼進(jìn)行實戰(zhàn)講解,圍繞深度學(xué)習(xí)原理介紹大量實戰(zhàn)案例,讀者通過這些案例可以深入地了解和掌握TensorFlow 2.1的內(nèi)容,并對深度學(xué)習(xí)有進(jìn)一步的了解。
本書是一本面向初級和中級讀者的優(yōu)秀教程。通過本書的學(xué)習(xí),讀者能夠掌握使用深度學(xué)習(xí)的基本內(nèi)容和在TensorFlow框架下進(jìn)行神經(jīng)網(wǎng)絡(luò)使用的知識要點,以及從模型的構(gòu)建到應(yīng)用程序的編寫一整套應(yīng)用技巧。
本書特色
1. 版本新,易入門
本書詳細(xì)地介紹從TensorFlow 2.1的安裝到使用、TensorFlow默認(rèn)API,以及使用官方所推薦的Keras的編程方法與技巧等。
2. 作者經(jīng)驗豐富,代碼編寫細(xì)膩
作者是長期奮戰(zhàn)在科研和工業(yè)界的一線算法設(shè)計和程序編寫人員,實戰(zhàn)經(jīng)驗豐富,對代碼中可能會出現(xiàn)的各種問題和“坑”有豐富的處理經(jīng)驗,使得讀者能夠少走很多彎路。
3. 理論扎實,深入淺出
在代碼設(shè)計的基礎(chǔ)上,本書還深入淺出地介紹深度學(xué)習(xí)需要掌握的一些基本理論知識,通過大量的公式與圖示結(jié)合的方式對理論做介紹,是一本難得的好書。
4. 對比多種應(yīng)用方案,實戰(zhàn)案例豐富
本書采用了大量的實例,同時也提供了一些實現(xiàn)同類功能的其他解決方案,覆蓋了使用TensorFlow進(jìn)行深度學(xué)習(xí)開發(fā)中常用的知識。
本書內(nèi)容及知識體系
本書基于TensorFlow 2.1版本的新架構(gòu)模式和框架,完整介紹TensorFlow 2.1使用方法和一些進(jìn)階教程,主要內(nèi)容如下:
第1章詳細(xì)介紹TensorFlow 2.1版本的安裝方法以及對應(yīng)的運行環(huán)境的安裝,并且通過一個簡單的例子驗證TensorFlow 2.1的安裝效果,并將其作為貫穿全書學(xué)習(xí)的主線。在本章還介紹了TensorFlow硬件的采購。請記住,一塊能夠運行TensorFlow 2.0 GPU版本的顯卡能讓你的學(xué)習(xí)事半功倍。
第2章是本書的重點,從模型的設(shè)計開始,循序漸進(jìn)地介紹TensorFlow 2.1的編程方法和步驟,包括結(jié)合Keras進(jìn)行TensorFlow 2.1模型設(shè)計的完整步驟,以及自定義層的方法。第2章的內(nèi)容看起來很簡單,卻是本書的基礎(chǔ)內(nèi)容和核心精華,讀者一定要反復(fù)閱讀,認(rèn)真掌握所有內(nèi)容和代碼的編寫。
第3章是TensorFlow 2.1的理論部分,介紹反饋神經(jīng)網(wǎng)絡(luò)的實現(xiàn)和最核心的兩個算法,作者通過圖示并結(jié)合理論公式的方式認(rèn)真詳細(xì)地介紹理論和原理并且手動實現(xiàn)一個反饋神經(jīng)網(wǎng)絡(luò)。
使用卷積神經(jīng)網(wǎng)絡(luò)去識別物體是深度學(xué)習(xí)一個經(jīng)典內(nèi)容,第4章詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)的原理、各個模型的使用和自定義內(nèi)容,借助卷積神經(jīng)網(wǎng)絡(luò)(CNN)算法構(gòu)建一個簡單的CNN模型進(jìn)行MNIST數(shù)字識別。此章和第2章同為本書的重點內(nèi)容,能夠極大地協(xié)助讀者對TensorFlow框架的使用和程序的編寫。
第5章是TensorFlow新版本的數(shù)據(jù)讀寫部分,詳細(xì)介紹使用TensorFlow 2.1自帶的Dataset API對數(shù)據(jù)的序列化存儲,并通過簡單的方法使用TensorFlow Dataset對數(shù)據(jù)進(jìn)行讀取和調(diào)用。
第6章介紹ResNet的基本思想和內(nèi)容。ResNet是一個具有里程碑性質(zhì)的框架,標(biāo)志著粗獷的卷積神經(jīng)網(wǎng)絡(luò)設(shè)計向著精確化和模塊化的方向轉(zhuǎn)化。ResNet本身的程序編寫非常簡單,其中蘊含的設(shè)計思想?yún)s是跨越性的。
第7章主要介紹自然語言處理最基本的詞嵌入的訓(xùn)練和使用,從一個有趣的問題引導(dǎo)讀者從文本清洗開始,到詞嵌入的計算以及利用文本的不同維度和角度對文本進(jìn)行拆分。
第8章開始進(jìn)行了更為細(xì)化的自然語言處理部分,即復(fù)習(xí)本書前面章節(jié)學(xué)習(xí)和掌握的自然語言處理手段,練習(xí)使用不同的技巧實戰(zhàn)前面部分的文本分類,扎扎實實地解決一個事實中存在的問題。
第9、10章向讀者展示目前自然語言處理研究的最先進(jìn)手段,即利用編碼器和解碼器對數(shù)據(jù)進(jìn)行處理。本書分別使用編碼器模型和解碼器模型去解決一個實際問題,并通過對其細(xì)節(jié)的不同做出對比,向讀者更加完整詳細(xì)地介紹編碼器與解碼器的應(yīng)用場景和不同,為后續(xù)的學(xué)習(xí)打下基礎(chǔ)。這也是自然語言處理研究的方向。
源碼下載與技術(shù)支持郵箱
本書配套的示例源碼,請用微信掃描清華網(wǎng)盤二維碼獲取。如果學(xué)習(xí)過程中發(fā)現(xiàn)問題,請聯(lián)系booksaga@163.com,郵件主題為“TensorFlow+Keras自然語言處理實戰(zhàn)”。
適合閱讀本書的讀者
?? 人工智能入門讀者;
?? 深度學(xué)習(xí)入門讀者
?? 機(jī)器學(xué)習(xí)入門讀者;
?? 自然語言處理入門讀者;
?? 各級人工智能院校的學(xué)生;
?? 專業(yè)培訓(xùn)機(jī)構(gòu)的學(xué)員;
?? 其他對智能化、自動化感興趣的開發(fā)者。
勘誤和支持
限于作者水平,加上編寫時間跨度較長、TensorFlow的演進(jìn)較快,書中的內(nèi)容難免會出現(xiàn)欠妥之處,懇請讀者來信批評指正。
感謝所有編輯們,在本書編寫中提供無私的幫助和寶貴的建議,正是他們耐心地鼓勵和支持才讓本書得以出版。感謝家人對我的支持和理解,這些都給了我莫大的動力,讓自己的努力更加有意義。
王曉華
2021年1月