search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

乾貨 | 這些關於 TensorFlow 問題的解答,你不能錯過

用 10 周時間,讓你從 TensorFlow 基礎入門,到搭建 CNN、自編碼、RNN、GAN 等模型,並最終掌握開發的實戰技能。4 月線上開課,現已開放預約。

作為目前最普及的深度學習框架,TensorFlow 實不必多做介紹。

無論國內外,有相當數量程序員以 TensorFlow 入門深度學習開發,逐步走上職業機器學習工程師的道路。

然而,TensorFlow 有一定的使用門檻。

不管是編程範式,還是數學統計基礎,都為非機器學習與數據科學背景的夥伴們帶來一定的上手難度,更不要提處理不同任務時需面對的各類演算法模型。

在AI慕課學院的TensorFlow課程中,同學們向老師提出了很多問題,比如:

anaconda是否能替代virtualenv?

除了python以外還能使用其他編程語言嗎?

關於初始化和計算的運行成功例子?

新手入門深度學習,選擇 TensorFlow 有哪些益處?

佟達:首先,對於新手來說,TensorFlow的環境配置包裝得真心非常好。

相較之下,安裝Caffe要痛苦的多,如果還要再CUDA環境下配合OpenCV使用,對於新手來說,基本上不折騰個幾天是很難搞定的。

其次,基於TensorFlow的教學資源非常多,中英文的都有,這對於新手也是非常有幫助的。

Google做社區非常有一套,在有專門的一群人,會在第一時間把Google的開發者相關的進展翻譯成中文。

另外,由於有Google背書,TensorFlow從長期演進來看,基本上可以保證這個技術不會曇花一現。

對於一個深度學習新手來說,學習任何一個工具,都有成本,如果剛學會,這個工具就沒人用了,這個沉沒成本還是很高的。

白髮川:TensorFlow分為圖和session兩個部分。

因為構建和執行在不同的階段,所以很好的支持了模型的分散式,所以學習TF可以比較好的理解模型的分散式計算。

另外TF支持直接從分散式文件系統,例如HDFS系統讀取數據,所以可以說TF是接通機器學習和大數據的一個橋樑。

新人上手 TensorFlow 經常會遇到哪些問題或困難?

佟達:第一個困難應該是來自編程範式的變化。

因為TensorFlow是聲明式開發方式,通過Session真正執行程序,這和常見的開發語言編程範式不太一樣。

如果是曾經有過函數式編程的Lazy Evaluation經驗,接受起來會好一點。

當掌握了基本的TensorFlow操作之後,就要使用TensorFlow做些真正有意義的事情。

這時候的一大困難在於,TensorFlow的報錯信息不那麼直觀,如果執行出錯,新手很難從一大堆調用棧中找到有用的信息。

白髮川:首選遇到的應該是數學的知識。

TF本身是一個深度學習的框架,和我們常規的程序框架例如Spring,Hibernate之類的框架定位不太一樣,會偏向數學部分一點。

例如矩陣計算,求導等,雖然TF已經封裝了對應的計算的API,但是我們還是需要知道這些概念性的知識,這樣才知道應該用什麼API。

其次TF通過圖的構建和計算部分分離實現模型的分散式,這一塊的理解對初學者來說有時候也不太容易。

能不能講講你們當初上手 TensorFlow 的經歷?學習過程中都遇到了哪些困難,又是如何解決的?

佟達:我在使用TensorFlow之前,使用過其他一些機器學習/深度學習框架,比如主要用於語音識別的Kaldi,圖像識別的Caffe,還有Spark MLlib,DeepLearning4j等。

所以上手TensorFlow並沒有帶來特別大的困難。

當用TensorFlow做的事情越來越複雜之後,我開始嘗試擴展TensorFlow,比如寫一些自定義的Op。

在TensorFlow中添加自定義Op需要用C++實現,編譯好之後,在Python裡面講動態庫鏈接進來才能使用。

這一過程還是有些複雜,尤其是C++的代碼有問題需要調試,需要使用lldb(llvm的debug工具,類似gdb),這對開發這的要求比較高。

另外TensorFlow的編譯使用的是Bazel,這是谷歌開源的一個多語言項目管理工具,要想把自定義的Op編譯出來,還需要花點時間研究Bazel。

實際上,Google很成功的把TensorFlow封裝的很好,開箱即用,然而,框架本身的複雜度還是很高,一旦你想要深入進去,還是需要下很大功夫。

白髮川:TF不是我接觸的第一個深度學習框架。

我是從大數據做起,到後來的開始用Spark MLlib做開發,也使用過h2o和deeplearning4j這些框架,最後才接觸TF的

所以對於我來說,更多的是學習TF的API設計相關的改變,以及對比其他框架TF做了哪些差異化的地方。

對於API這一塊,直接參考TF的Doc就是最好的方法。

不過我可以介紹一下入門到機器學習的經歷,我最開始的工作也是和大多數人一樣,從事web開發,或者mobile的開發。

所以我的情況應該和大多數人相同,後來我開始接觸到機器學習的時候發現和之前的思維差別挺大的。

首先在我們從事一般的像mobile之類的開發的時候,我們並不會關心什麼是矩陣的逆,什麼是函數的導數,更加不會關心什麼是鏈式求導。

而在機器學習裡面,這些都是基礎,所以我又重新撿回了大學的線性代數和微積分再次過了一遍。

TF是個深度學習框架,所以使用TF的時候不可避免的要理解什麼是隱層,什麼是激活函數,激活函數有哪些,以及如何定義損失函數等等這一些概念。

對於這一塊我當時除了調研一些書籍外也通過看stanford的一些課程來學習。

當然過程中也和很多同行進行交流和總結,特別是對於調參這一塊,除了學習之外更多的需要自己進行實踐。

看完這些,你是否在想:一直希望有個老司機能手把手帶領入門?這就是一次不容錯過的好機會!

噹噹當,由 ThoughtWorks 兩位老師在雷鋒網AI慕課學院(mooc.ai)主講的「TensorFlow & 神經網路演算法高級應用班」正在開展ing…向大家系統性地傳道解惑。快來和小編一起去課程現場看看~

乾貨滿滿:

一言不合就秀代碼:

導師貼身指導,及時解答課程疑問:

我們將老師邀請到了學員微信群中,隨時為學員解答學習過程中的小問題~

還有不定期學術講座或活動,慕課學員可優先參與哦~

相信聰明的你絕對不會錯過!

關於TensorFlow課程

從初級到高級,理論+實戰,一站式深度了解 TensorFlow!

本課程面向深度學習開發者,講授如何利用 TensorFlow 解決圖像識別、文本分析等具體問題。

課程跨度為 10 周,將從 TensorFlow 的原理與基礎實戰技巧開始,一步步教授學員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,並最終掌握一整套基於 TensorFlow 做深度學習開發的專業技能。

兩名授課老師佟達、白髮川身為 ThoughtWorks 的資深技術專家,具有豐富的大數據平台搭建、深度學習系統開發項目經驗。

最後,對那些不方便直播學習的朋友,如果錯過直播,次日將提供回放,無限次觀看,大家可以在「mooc.ai」AI慕課網站關注購買。

開課時間:4 月 25 日(星期二)開課,每周二、四晚 20:00-21:00

開課時長:總學時 20 小時,分 10 周完成,每周2次,每次 1個小時

授課地址:http://www.mooc.ai/course/82

線上授課,點擊閱讀原文諮詢課程詳情

也歡迎關注我們的服務號哦~



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦