Swift for TensorFlow 來啦!
Swift for TensorFlow 來啦!
斗大的標題,其實它很早就來了,只是今天TensorFlow官方開源了這個swift版本。作為一位在傳銷的路上漸行漸遠的人工智慧吃瓜群眾,還是第一時間感受了一下,只能說兩個字: 二妹子英!Amazing!
很多吃瓜群眾跟我一樣可能覺得這沒啥啊?不就是一個語言的binding么?錯了錯了,大錯特錯!各位吃瓜朋友,今天這篇博客就是讓你拋棄你以前學的所有東西,準備東山再起的第一篇!閑話不多說,我們先來說一下由來:
Why Swift?
首先我們要想一下,為什麼tensorflow官方團隊要發起一個這樣的項目?朋友們,你們還記得今年年初的時候發布的那個Egar Execution嗎?當時還是preview,我玩了一下感覺並沒有什麼卵用。tf團隊也考慮到了這個問題,他們提出了這麼一個問題:
搞個JB python的Egar Execution,有點強人所難啊,python從語言層面本身就不支持立即執行啊,為了實現它,我們還得再封裝一下tensorflow變成tensor_egar,重點是每次還得判斷一下當前的操作是不是tensor,是的話就不執行,這很蛋疼,而且速度很慢,並沒有我們宣傳的那麼牛逼,至於吃瓜群眾為什麼大讚特贊,我們也搞不懂,那有沒有什麼辦法解決它呢?乾脆一不做二不休,RTMD,老子們重寫一個語言!
吃瓜朋友們,請注意官方團隊的用詞:老子們重寫一個語言,重點是重寫不是老子們。。重寫啊朋友們!不是簡單的wrapper噢!好了,tf的作者們決定干一件大事了,但是好像這麼多牛逼的語言,我不知道選哪個啊,萬一選錯了,可能就誤了tensorflow的大事啊!最後tf作者們苦思冥想,突然靈機一動:
What the fu*k! 真的是好語言遠在天邊近在眼前啊!直接用蘋果他們家的swift不就可以了嗎??swift你不是牛逼嗎?你牛逼我就用用看絡,如果吃瓜群眾們都說不牛逼,看你們還怎麼吹牛逼!
於是tf的作者們開始搞事情了,他們做的第一件事情就是打開github,搜索了一下apple,從apple的官網fork了一下swift。。。蘋果開發者們內心os:
我的哥奶奶,這他媽tf作者們是要搞事情啊!fork我們的swift代碼幹什麼?!莫非NM不是要抄我的語言,編程一個gwift?我日了,真的是光腳的不怕穿鞋的,公然剽竊語言!哦不對….我他媽swift本來就是開源的啊。。。。算了不管它了。。讓tf這幫吃瓜群眾去搞事情去吧。。
事件發展到這裡,雞哥難免新村狐疑,為毛是swift?為什麼不是Rust呢?為什麼不?Rust按道理是完全可以完敗C++的啊!雞哥內心os:
chishi的tf作者,用腳思考一下好嗎?Rust比swift強很多倍好嗎?Rust是最可能在底層完敗所有語言的潛力股好嗎?你用swift考慮過谷歌爸爸的感受嗎?shi好吃嗎?(不要被tf作者們看到)
跟我一樣心存疑問的朋友們歡迎在下面給我留言。
Swift for TensorFlow到底是什麼?
好了,很多人還是不明白,這tm的swift for tensorflow到底是個什麼玩意兒呢?雞哥再此給大家捋清除一下思路:
- Swift for TF是tensorflow的作者們專門針對tensorflow而優化後的swift。聽起來很拗口,但是這的的確確可以看做是,一門新的語言!
- Swift for TF重寫了swift的編輯器,所有的優化都是針對tensorflow編譯進行的;
- 使用Swift for TF,媽媽再也不用擔心你TM寫了三個小時代碼,結果發現Tensor的維度不對,尺度不對,大小不對等問題!!
- Swift 裡面可以直接調用Python API!!直接調用Python!!
- 我當前還不知道swift for tf到底要不要依賴原始的C++代碼,如果不依賴,那你就直接編譯你的人工智慧程序!!請注意,是編譯!!
Swift for Tensorflow安裝
吃瓜朋友們以為在看長篇小說嗎?雞哥可沒有時間給你們寫長篇小說哦,關注專欄的朋友們路過覺得點贊,我們接下來要安裝下swift for tensorflow。朋友們,請注意,這是人工智慧從入門到逆天殺神的首發文章。記得點贊,切記切記。
目前swift for tensorflow只支持macOS 和Ubuntu,不支持iOS以及watchOS!下載鏈接:https://github.com/tensorflow/swift/blob/master/Installation.md 。
幸好雞哥有一台85年的mac,可以撮合著用。mac下下載是一個pkg的包,裡面193M,真GB大!
我日了,不安裝不知道,一安裝嚇一跳,居然要614M空間!算了算了為了寫這篇教程還是安裝一下吧。
如果你還沒有安裝xcode,可能需要安裝一下。
安裝完了,接下來要搞毛呢?記得添加一下swift-tf的path:
$ export PATH=/Library/Developer/Toolchains/swift-latest/usr/bin:"${PATH}"
OK, 進入REPL,我們看看能不能import TensorFlow:
Tada!導入成功。
朋友們,吃瓜的朋友們,接下來是騷操作了!!!
直接在REPL裡面執行tensor的相加操作!!這個如果你在python裡面只能初始化一個session,C++也是,而在swift裡面,都不需要!
朋友們!完全沒有錯!這是一個全新的語言!可以直接運行tensor的操作!
吃瓜朋友們可能會嗤之以鼻了,其實也不是什麼新的語言,tf的作者們只是改了swif的編譯器,但是語法都是相同的。不過最牛逼最騷的一點事:swift可以在你的寫代碼的時候直接檢測出你的tensor維度錯誤!!
怎麼樣,準備好迎接新一代深度學習編程語言了嗎?
推薦閱讀:
※mxnet 加入apache 之後會有哪些影響,未來如發展?
※MXNet的動態圖介面Gluon
※為什麼選擇 MXNet?
※MXNet入坑(二)- Engine 「依賴引擎」與它的核心演算法
※為什麼強大的 MXNet 一直火不起來?
TAG:TensorFlow | MXNet | PyTorch |