這些關於TensorFlow問題的解答,你不能錯過
作為目前最普及的深度學習框架,TensorFlow 實不必多做介紹。
無論國內外,有相當數量程序員以 TensorFlow 入門深度學習開發,逐步走上職業機器學習工程師的道路。
然而,TensorFlow 有一定的使用門檻。
不管是編程範式,還是數學統計基礎,都為非機器學習與數據科學背景的夥伴們帶來一定的上手難度,更不要提處理不同任務時需面對的各類演算法模型。
在AI慕課學院的TensorFlow課程中,同學們向老師提出了很多問題,比如:
anaconda是否能替代virtualenv?
除了python以外還能使用其他編程語言嗎?
關於初始化和計算的運行成功例子?
如果你在入門學習TF的過程中,也有很多類似的疑問,想要得到系統性和細節的解答。我們專程為大家邀請了兩位 ThoughtWorks 老師與大家分享新手入門 TensorFlow 容易遇到的一些問題,以及他們的入門經歷與使用體驗。
新手入門深度學習,選擇 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
線上授課,點擊閱讀原文諮詢課程詳情
也歡迎關注我們的服務號哦~


※PyTorch 的預訓練,是時候學習一下了
※一個實例告訴你:Kaggle 數據競賽都有哪些套路
※深度學習之父的神經網路第五課!
※生成對抗網路研究年度進展評述
TAG:唯物 |
※關於Pinterest的眾多問題,我們一 一解答
※New Balance 出的這道算術題應該如何完美解答?
※眾 Avengers 解答最多影迷 Google 搜索的 Marvel 疑問
※挺過了聽證會,Facebook扎克伯格還有一堆問題要解答
※關於亞馬遜打假項目Project Zero的常見問題解答
※Eureka常見問題解答
※Redmi Note 7 Pro評測:針對網友提出的問題一一作出解答!
※粉絲提問:女生適合穿哪幾款老爹鞋? SneakerBeauty正妹為你解答!
※後台粉絲提問大解答!你想知道的reebonz問題都在這裡
※vivo NEX雙屏版評測:這是vivo對智能手機的另一種解答
※禁止亂搭 | 拜託,Athleisure風才是「明天穿什麼」的完美解答好嗎!
※Smartshare用區塊鏈解答「共享」難題
※關於谷歌Stadia,產品總監最近解答了幾個疑問
※三星Galaxy Fold為何不向外摺疊?官方解答來了
※「active」在腦積水新定義中問題的解答
※Air Pods致癌?蘋果官方卻給出「放心使用」的解答
※oversize西裝怎麼搭?Gigi用這款牛仔褲完美解答!
※G?知 最多人在搜尋關於美妝的問題,由Chanel全球創意總監為你解答!
※美國拍賣平台Tophatter,新賣家常見問題解答
※求解答,Selina到底有沒有跟他在一起啊!