丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給汪思穎
發(fā)送

0

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

本文作者: 汪思穎 編輯:郭奕欣 2017-09-10 09:36
導語:框架只是個框架,最終要能出活

雷鋒網(wǎng)AI科技評論按:作為谷歌AlphaGo背后的強大推動力,于2015年底開源的TensorFlow一經(jīng)推出便受到極大關注。目前在所有機器學習框架中,如果它宣稱使用普及率第二,沒人敢說自己是第一。

雖說有谷歌的背書,社區(qū)好,資源多,但同學們在使用TensorFlow的過程中,常常會一不小心跳進坑里,嚴重影響體驗。

近日一位同學就在知乎上提了一個問題【TensorFlow有哪些令人難以接受的地方?】,表達了TensorFlow在使用過程中的不便,順便問了大家有沒有什么更優(yōu)雅的方法繞過那些坑。短短一個月的時間,該問題的瀏覽量已經(jīng)達到10萬+,關注者也達上千人。

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

作為問題的提出者,這位同學也試著拋磚引玉作了回答,他表示提出這個問題的初衷是希望引發(fā)大家對TF少一些盲目的推崇,多些理性的思考和進一步的討論。而在全部42個回答中,雷鋒網(wǎng)AI科技評論也總結了一些有意思的現(xiàn)象。

TensorFlow的“吐槽大會”

結合知乎上網(wǎng)友的回答,以及業(yè)內(nèi)相關人士對TensorFlow的評價,AI科技評論整理了TensorFlow目前被“吐槽”頻率比較高的一些問題。

  • 文檔和接口混亂

    因為它的API發(fā)展太快,經(jīng)常更新,所以有一些常用的函數(shù)方法會不斷挪位置,例如rnn就從之前的nn接口移到contrib接口,寫代碼時需要常常翻閱文檔。底層接口寫起來繁瑣,高層接口不靈活,且封裝混亂。

  • 默認占用所有GPU的所有內(nèi)存

    在實驗過程中,并不是所有人都有多塊GPU可用。tf在GPU不可用時會自動改在CPU上跑,這樣一方面會導致速度變慢,另一方面,在共用顯卡的情況下,你根本就不知道是在CPU上跑。雖說tf會打印設備信息,但是tf啟動的時候輸出的信息太雜了,沒法每次都仔細看一遍。

  • 使用繁瑣

    明明有其他更通用的模塊能用,可事無巨細都要去使用tf的模塊。例如雖然有默認的python庫argparse可以用,但在很多tf示例代碼中使用tf.app.flags。

  • 做流程控制非常難以理解

    語句中存在條件分支,例如當a>0時執(zhí)行一步,a<0時執(zhí)行另一步,如果有多層的這種條件嵌套會很難操作。

  • 調(diào)試困難

    TensorFlow作為靜態(tài)圖框架,api經(jīng)常變,打印中間結果必須要借助Session運行才能生效,或者學習額外的tfdbg工具。而如果是用PyTorch這樣的動態(tài)框架的話,就不需要多學一個額外的工具,只需要用正常的Python調(diào)試工具如ipdb就可以了。

綜合看來,在使用TF的過程中,確實存在很多不夠人性化的地方。不過,每個工具都不是完美的,雖說TF缺陷很多,但是對框架使用情況的統(tǒng)計數(shù)據(jù)最能說明問題,正所謂“TF虐我千萬遍,我待TF如初戀”嘛。

TF普及率遙遙領先

下表為各個開源框架在GitHub上的數(shù)據(jù)統(tǒng)計(數(shù)據(jù)統(tǒng)計于 2017 年 9月 6 日),可以看到 TensorFlow 在 star 數(shù)量、fork 數(shù)量、contributor 數(shù)量這三個數(shù)據(jù)上都完勝其他對手。

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

此外,特斯拉AI負責人Andrej Karpathy2017年初通過分析過去五年arxiv上的論文數(shù)據(jù),對比了各種深度學習框架的使用情況,看圖說話:

下圖是從2012年1月到2017年3月各框架的使用隨時間的發(fā)展趨勢。

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

下圖對比了2017年3月在arxiv上提交的論文中提到深度學習框架的情況。

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

結合上面兩張圖,可以看到,自15年底谷歌開源TensorFlow以來,它的用戶數(shù)增長穩(wěn)定,而且一直處于高速的增長中,到17年3月,已經(jīng)處于不可撼動的地位。(pytorch于2017年1月才開源,此處不做對比)

AI科技評論也總結了TensorFlow的幾點優(yōu)勢。

  • 背靠谷歌這座大山,目前TensorFlow的文檔最全,資源最多,很多模型都有tf的源碼實現(xiàn)。而且用戶基數(shù)龐大,一旦出問題很容易找到解決方案。

  • TensorFlow有功能強大的可視化組件TensorBoard,能可視化網(wǎng)絡結構和訓練過程,對于觀察復雜的網(wǎng)絡結構和監(jiān)控長時間、大規(guī)模的訓練很有幫助。

  • 雖然TensorFlow是靜態(tài)圖操作,會給調(diào)試帶來困難,但會大大方便部署。除了caffe,目前還沒有其他架構能支持靜態(tài)圖操作,但是caffe編程要比TF復雜。

而有意思的是,caffe作者賈揚清也在知乎上為TensorFlow正名。

他提到,TF是目前唯一一個在核心設計層面上支持dynamic control flow的框架,也是極少幾個經(jīng)歷大規(guī)模多應用部署考驗的框架之一。TensorFlow能直面實際應用中的限制條件,部署到真正核心的產(chǎn)品里面,它支持大規(guī)模推薦系統(tǒng)和移動端產(chǎn)品的部署,而這點對于很多框架來說沒法實現(xiàn)。

“TF的確難,但是它給你提供了真正可以產(chǎn)品化的可能性。很多問題只看見一棵樹的時候簡單,看見森林的時候,解決方法就不一樣了?!?/p>

細數(shù)完優(yōu)點和缺點,問題來了。對于哪些實在忍受不了TensorFlow缺點的人,在考慮是否應該換個框架了。而對于那些還沒入坑的同學,到底該用哪種框架?

當前主流框架大對比

主流框架的對比一直是個長期被討論的話題,相關的帖子和文章也層出不窮。而在今年三月的斯坦福大學cs231n中,李飛飛、Justin Johnson和 Serena Yeung 也對當前幾種主流框架進行了對比,并給出了建議。

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

  • TensorFlow雖然不完美,但是利于部署,有穩(wěn)定的社群。此外它還擁有很多庫,比如Keras和Sonnet等。

  • PyTorch很適合用于研究,但是它很新,因此你可能有很多坑要填。

  • 除了TensorFlow,caffe、caffe2也可以用于產(chǎn)品部署。

  • 手機端可以考慮TensorFlow或caffe2。

此外,北大的吳秉哲同學在知乎上也給出了很好的解答,他之前用Pytorch,Tensorflow,Mxnet這三個模型都做過項目,認為應該根據(jù)自己的需求選擇模型。

  • 在需要快速驗證一下自己某些想法的時候,我一般會用Pytorch快速實現(xiàn),而且Pytorch的底層計算的代碼是C寫的,并且和Torch共用一套底層計算代碼,想要閱讀原碼并做定制化修改比較容易上手。

  • 在做一些數(shù)據(jù)量比較大的long term的訓練的時候,我會用tensorflow,比如它提供的tensorboard的訓練監(jiān)督,還有自帶的profiling和debug功能比較方便,還有個原因就是它可以很方便的把模型deploy到手機上,現(xiàn)在caffe2出來了,或許可以是一個比較好的替代。

  • 另外選擇框架的時候還得參考一下你所做的項目,比如做person re id大多數(shù)的工作都是基于caffe修改的,這個時候需要考慮遷移這些工作到其他框架下時不時會遇到坑。

  • 如果做物體定位,Mxnet已經(jīng)提供了一些操作的高效實現(xiàn)。

他還強調(diào),“現(xiàn)在框架迭代得也越來越快,mxnet在近期推出gluon的接口,API仿照Pytorch設計。不久之后Tensorflow也會有相應的接口推出?!?/p>

總結

很多同學在實驗過程中,總是對框架過多考慮。這個框架的速度怎么樣?好用程度程度怎么樣?為什么文檔這么亂?為什么用起來這么不順手?隨之而來就是一系列的吐槽。而他們往往忽略了最關鍵的東西,框架只是個手段,重要的是你想解決的是什么問題,以及你解決問題的思路。

此處借用賈揚清一句話,“框架就是個框架,最終要能出活?!?/p>

雷鋒網(wǎng) AI科技評論。雷鋒網(wǎng)。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知

文檔亂、調(diào)試難…TensorFlow有那么多缺點,但為何我們依然待它如初戀?

分享:
相關文章

編輯

關注AI學術,例如論文
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說