Google開源Swift for TensorFlow無疑是對熱衷於喜愛Swift程式語言的開發者的特殊福利。這也不由得讓我更加欽佩Swift之父Chris Lattner此舉的偉大。
此前,Lattner在蘋果領導開發的Swift不僅速度快,可用性高,在開發者群體中極受歡迎,隨後,在Tesla短暫停留的六個月之後,Lattner於2017年8月選擇加盟Google Brain,專攻機器學習和人工智慧,目前來看,Swift for TensorFlow應該其加入Google之後的第一個大動作。
另外,TensorFlow也詳細介紹專案的幾個重要領域,透過「Graph Program Extraction」的演算法,可以讓開發者用Eager Execution 式的編程模型來實作程式碼,同時保留TensorFlow 運算圖的高效能優勢。並且,這個專案也允許開發者直接透過Swift程式碼任意使用Python API。
當然,TensorFlow官方也提到,之所以選擇Swift作為主語言,目的在於「實現可靠的 Graph Program Extraction 演算法對於程式語言的設計有很高的要求」。
總的來講,自從Tensorflow開源之後,其提供的API對搭建神經網路有著足夠的自由度,很大程度上為開發者們搭建和實現功能解決了後顧之憂,但另一方面,鑑於使用TensorFlow的基本模型,Python作為資料科學家專用的最舒適的語言,與TensorFlow也是一個很自然的契合。甚至連fast.ai創辦人、前任Kaggle總裁Jeremy Howard在看到此次專案之後曾在Twitter上評論:「我們是不是終於可以放下Python了?」
推薦課程:Python教程。
先前,TensorFlow官方曾給出一個特別的提示:「現在使用Swift for TensorFlow重寫你的深度學習模型還為時過早。」
那麼,我們何時需要開始真得需要並投入Swift呢?
近期,來自Fritz.ai共同創辦人兼CEO Jameson Toole發表一篇標題為《為什麼資料科學家應該開始開始學習Swift》(Why data scientists should start learning Swift),其中,他談到了Swift for Tensorflow以及機器學習發展的未來。
他表示,不要將Swift視為TensorFlow的簡單包裝,以便其更易於在iOS設備上使用。其意義遠不止如此。這個專案改變的將是整個機器學習和資料科學生態系統使用的預設工具。
為什麼要這麼講呢?
他繼續談到:
「在此背景之下,可以看到兩個趨勢正慢慢滲透:一個是透過神經網路和深度學習掀起的人工智慧復興;一個是向數十億智慧型手機和物聯網設備上運行的移動為先應用的轉變。這兩種技術都需要高效能運算能力,這種情況下Python就顯得尤為不適了。
一方面,深度學習在算力上非常昂貴,需要透過張量運算的長鏈傳遞龐大的資料集。為了快速執行這些計算,軟體必須將數以千計的線條和核心與專用處理器進行編譯。在行動裝置的功耗和熱量被真正關注的情況下,這些問題開始加劇了。相對來講,以更少的內存換來更為高效的處理器以優化應用,這都是一個不小小的挑戰。顯然,迄今為止,Python仍然不再是一個很好的解決方案。
而對資料科學家和機器學習研究人員來講,這就是很大的問題。因為,我們不再訴諸於讓GPU承受大量工作負載,但多數人又深陷行動應用開發的泥潭,再耗費時間學習一門新的程式語言似乎不太現實,但這種轉換成本實在太高了。例如Node.js這樣的JavaScript專案和React Native這樣的跨平台抽象工具。現在,我很難在Python的環境下完成專案。
在由機器學習和邊緣運算主導的在世界中,Python無法成為端對端語言,主要還是因為Swift for TensorFlow的推動。Chris Lattner認為,Python作為一種動態型語言,無法帶領我們走得更遠。用他的話來講,工程師需要一種把機器學習當做'一等公民'的程式語言。當然,雖然他深刻闡述了為什麼採用新的編譯分析與改變利用TensorFlow搭建專案的方式息息相關,但是他最引人矚目的也對程式設計過程的理解。」
以上是谷歌為什麼放棄python的詳細內容。更多資訊請關注PHP中文網其他相關文章!