初步了解TensorFlow框架學(xué)習(xí)
1.深度學(xué)習(xí)框架普及
如今,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,學(xué)術(shù)界和工業(yè)界流行的深度學(xué)習(xí)框架很多,下面就給大家普及一下目前在學(xué)術(shù)和工業(yè)界較為流行的幾個(gè)深度學(xué)習(xí)框架,有助于大家今后對(duì)于深度學(xué)習(xí)進(jìn)一步的學(xué)習(xí)。
1.1 TensorFlow
谷歌的TensorFlow是當(dāng)今很受歡迎的機(jī)器學(xué)習(xí)框架,無(wú)論在學(xué)術(shù)界還是工業(yè)界都有一席之地。它可用于各類機(jī)器學(xué)習(xí)相關(guān)的任務(wù)中。Tensor即張量,也可以理解為多維度的向量,F(xiàn)low即流,代表基于數(shù)據(jù)流圖的計(jì)算。這是深度學(xué)習(xí)領(lǐng)域最為基礎(chǔ),也是最需要去掌握的框架。它支持Python、JavaScript、C ++、Java、Go和R等多種編程語(yǔ)言,同時(shí)還可以在iOS和Android等移動(dòng)平臺(tái)上運(yùn)行。由于TensorFlow使用靜態(tài)計(jì)算圖進(jìn)行操作,即Flow流的含義。所以,在使用該框架進(jìn)行模型構(gòu)建時(shí),我們需要先定義圖形,即模型圖,然后再運(yùn)行計(jì)算,如果需要對(duì)架構(gòu)進(jìn)行更改,則需要重新訓(xùn)練模型。這樣的方法是為了提高訓(xùn)練效率,但是不能動(dòng)態(tài)地去修改模型,必須等所有模型訓(xùn)練結(jié)束后再進(jìn)行模型調(diào)整。關(guān)于TensorFlow框架的學(xué)習(xí),這里我建議大家可以去MOOC網(wǎng)上進(jìn)行系統(tǒng)的學(xué)習(xí),并且全課程免費(fèi),非常適合新手學(xué)習(xí):??https://www.icourse163.org/course/youdao-1460578162??
1.2 Keras
在今后的TensorFlow的學(xué)習(xí)中,少不了使用Keras的地方。Keras也是一個(gè)對(duì)小白用戶非常友好的深度學(xué)習(xí)框架。如果想快速入門深度學(xué)習(xí),Keras框架也是個(gè)不錯(cuò)的選擇。Keras是TensorFlow高級(jí)集成API,可以非常方便地和TensorFlow進(jìn)行融合。目前,2.0版本的TensorFlow框架插件庫(kù)已經(jīng)配備了Keras,因此可以在TensorFlow中很方便地使用Keras框架。使用Keras可以快速搭建深度學(xué)習(xí)模型,是學(xué)術(shù)研究高效進(jìn)行的關(guān)鍵。因?yàn)镵eras是高度模塊化,搭建網(wǎng)絡(luò)非常簡(jiǎn)潔,同時(shí)API簡(jiǎn)單,易擴(kuò)展,易于添加新模塊。
2.Python必備知識(shí)
IT界流行一句話,即“人生苦短,我用Python”。所以不學(xué)點(diǎn)Python,在深度學(xué)習(xí)領(lǐng)域真的很難發(fā)展下去。不論是今后軟件開發(fā)還是算法設(shè)計(jì),Python都是一把利器,也是在學(xué)術(shù)研究和求職中必備的一個(gè)開發(fā)語(yǔ)言。因此大家在學(xué)習(xí)TensorFlow之前,最好能有一些Python基礎(chǔ)知識(shí),這樣學(xué)起來(lái)也容易掌握。這里提供一些必備的Python基礎(chǔ)知識(shí)。
(1)Python語(yǔ)言基本語(yǔ)法:程序的基本語(yǔ)法(程序的格式框架,縮進(jìn)、注釋、變量、命名、保留字、數(shù)據(jù)類型、賦值、語(yǔ)句、引用)、基本輸入輸出函數(shù)(input() 、eval() 、print())。
(2)基本數(shù)據(jù)類置:數(shù)字類型(整數(shù)類型、浮點(diǎn)數(shù)類型和復(fù)數(shù)類型)、數(shù)字類型的運(yùn)算(數(shù)值運(yùn)算操作符、數(shù)值運(yùn)算函數(shù))、字符串類型及格式化(索引、切片,基本的format()格式化方法)、字符串類型的操作(字符串操作符、處理函數(shù)和處理方法)、類型判斷和類型間轉(zhuǎn)換
(3)程序的控制結(jié)構(gòu):控制結(jié)構(gòu)(順序、選擇、循環(huán))、程序的異常處理
(4)函數(shù)和代碼復(fù)用:函數(shù)的定義和使用、函數(shù)的參數(shù)傳遞、變量(局部變量和全局變量)
(5)組合數(shù)據(jù)類型:列表類型(定義、索引、切片)和操作、字典類型和操作
(6)文件和數(shù)據(jù)格式化:文件的使用、數(shù)據(jù)的處理(表示、存儲(chǔ)和處理)
3.框架部署環(huán)境選擇
有了以上的基礎(chǔ)知識(shí),機(jī)器學(xué)習(xí)框架的部署以及資源也尤為重要,目前主要使用的環(huán)境部署是Anaconda,通過(guò)下載好Anaconda,然后在Anaconda中進(jìn)行資源選擇和環(huán)境部署,特別是CUDA的版本一定要和TensorFlow匹配。不然最后模型訓(xùn)練會(huì)報(bào)錯(cuò)。同時(shí)對(duì)于GPU和CPU的選擇也要確認(rèn)好,建議GPU和CPU分別部署一個(gè)環(huán)境,這樣到時(shí)候訓(xùn)練圖片類的數(shù)據(jù)集時(shí),就切換成GPU版本,其他的訓(xùn)練就切換成CPU版本,比較方便也不容易出錯(cuò)。具體的部署操作網(wǎng)上有很多教程,在這里就不贅述了。至于代碼編輯器的使用,目前工業(yè)界普遍使用Pycharm,學(xué)術(shù)界普遍使用jupyter,各有各的優(yōu)勢(shì)所在,大家可以都體驗(yàn)一遍,然后選擇適合自己的腳本編輯器即可。
開發(fā)環(huán)境準(zhǔn)備操作,推薦新手可以參考MOOC課程,免費(fèi)注冊(cè)學(xué)習(xí):
4.個(gè)人推薦的部署資源環(huán)境
對(duì)于電腦設(shè)施比較優(yōu)越或者訓(xùn)練一些少量數(shù)據(jù)集的模型的同學(xué),在自己電腦上部署環(huán)境訓(xùn)練模型是可行的,而且訓(xùn)練速度也較快。但是對(duì)于大量數(shù)據(jù)集的復(fù)雜模型,有時(shí)候就不得不運(yùn)用到一些線上的機(jī)器資源了,而模型訓(xùn)練的機(jī)器資源也尤為緊缺,基本市面上大多數(shù)都是需要收費(fèi)才能使用。在這里,為了大家以后能更好的進(jìn)行模型訓(xùn)練,我提供一個(gè)線上機(jī)器資源來(lái)供大家使用,并且是免費(fèi)的。這個(gè)資源平臺(tái)就是九天畢昇平臺(tái),算是目前最為良心的算力平臺(tái),大家可以自行搜索進(jìn)入官網(wǎng)注冊(cè)然后使用即可。至于進(jìn)行模型訓(xùn)練和部署的具體操作,后續(xù)我會(huì)詳細(xì)地介紹給大家。除此之外,TensorFlow官方也提供了免費(fèi)的資源環(huán)境供用戶使用,詳情參考:
??https://www.icourse163.org/course/youdao-1467217161??,想快速了解模型部署,也可以去看看谷歌開發(fā)者專家這周做的一個(gè)線上講解和答疑:
??https://zhibo.51cto.com/liveDetail/373??
5.機(jī)器學(xué)習(xí)路徑與建議
使用框架時(shí)為了更好地實(shí)現(xiàn)或者運(yùn)用機(jī)器學(xué)習(xí)知識(shí),因此,最終的目的還是需要去掌握機(jī)器學(xué)習(xí)知識(shí),利用這些知識(shí)去解決現(xiàn)實(shí)中的一些問(wèn)題。要具備機(jī)器學(xué)習(xí)的思想,即現(xiàn)實(shí)中的任何事物在機(jī)器學(xué)習(xí)領(lǐng)域都可以用數(shù)據(jù)去表示,然后通過(guò)構(gòu)建模型去認(rèn)識(shí)、學(xué)習(xí)或者識(shí)別這些數(shù)據(jù),從而找到數(shù)據(jù)之間的規(guī)律和特征,做到讓模型真正像人一樣去理解事物,從而使該模型具備處理該類事物的能力,運(yùn)用在今后類似的事物或事件中。
因此,這里就涉及到了幾個(gè)問(wèn)題:如何對(duì)事物進(jìn)行數(shù)據(jù)化或者特征化、如何構(gòu)建模型、如何輸入模型、如何訓(xùn)練模型、如何調(diào)整模型參數(shù)、如何衡量模型性能以及最后如何用該模型去解決現(xiàn)實(shí)中問(wèn)題等,一個(gè)比較系統(tǒng)化的機(jī)器學(xué)習(xí)入門課提供給大家學(xué)習(xí)了解:
另外對(duì)于機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)感興趣的同學(xué),我建議大家最好去閱讀下周志華的《機(jī)器學(xué)習(xí)》,俗稱西瓜書,這本書詳細(xì)地說(shuō)明了機(jī)器學(xué)習(xí)的基礎(chǔ)理念,對(duì)于里面的數(shù)學(xué)公式大家可以根據(jù)自己的學(xué)習(xí)情況去選擇性掌握。想認(rèn)真學(xué)習(xí)里面公式推導(dǎo)過(guò)程的同學(xué),該書還配備了輔導(dǎo)工具書《機(jī)器學(xué)習(xí)公式詳解》(也叫南瓜書)。這里,我真誠(chéng)建議大家去看下這兩本書,最好能做到熟悉西瓜書、了解南瓜書的程度。這樣對(duì)于今后的學(xué)習(xí)會(huì)大有裨益。
最后和大家分享一個(gè)關(guān)于部署的有獎(jiǎng)問(wèn)卷活動(dòng),感興趣的同學(xué)可以花5分鐘參與,有機(jī)會(huì)獲得限量的TensorFlow帆布包。只要三步就能完成,非常輕松。
1.戳鏈接填寫問(wèn)卷
??https://wj.qq.com/s2/11353529/a72b/??
2.戳鏈接,在【課程評(píng)價(jià)區(qū)】留下有效評(píng)價(jià)
3.發(fā)送兩個(gè)截圖,添加小助手參與抽獎(jiǎng)。

期待大家在機(jī)器學(xué)習(xí)的道路上愈發(fā)精進(jìn)!
作者介紹
?稀飯,51CTO社區(qū)編輯,曾任職某電商人工智能研發(fā)中心大數(shù)據(jù)技術(shù)部門,做推薦算法。目前從事自然語(yǔ)言處理方向研究,主要擅長(zhǎng)領(lǐng)域有推薦算法、NLP、CV,使用代碼語(yǔ)言有Java、Python、Scala。發(fā)表ICCC會(huì)議論文一篇。















 
 
 






 
 
 
 