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