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