《MNN For Swift》移動端機器學習實戰課程發布!

2021-02-25 淘系技術

自 2019 年 4 月在 Github 開源以來,淘系技術部-端智能團隊自研的 MNN 推理引擎,因為其高性能、易用性以及優秀兼容性受到不少開發者的支持和喜愛。我們也把這份支持化作不斷前進的動力,僅最近半年就推出了包括但不限於如下的諸多亮眼特性:




關於 MNN 的強大,能說的還有很多,但我們不想再一次通過秀肌肉來證明 MNN 的領先獨到。相反,我們希望通過這篇文章來說明更重要的一件事:來自開發者的聲音,我們聽見了。


在 MNN 開源的這一年多裡,隨著 MNN 被越來越多的開發者、企業所了解並使用,我們與社區之間的交流也愈加緊密頻繁。在這之中,有一類的呼聲經常被提起:





沒錯,很多人對機器學習的陌生來自於未知,而正是因為這個未知讓大家想像不到能用 MNN 實現什麼。


所以我們在想,如果用一門更熟悉的語言,帶大家走入端智能的大門,為自己的職業生涯開闢一道新的口子,這樣是不是對大家更有幫助?


今天,對著廣大的移動開發者,我們要大聲的宣布:MNN for Swift 正式來啦!伴隨著這個項目一同發布的,還有系列實踐性教程 -《MNN x Swift 機器學習實戰》。


通過這兩個項目,希望能給各位帶來清晰的端智能學習路徑。



能從課程中收穫什麼


相信大家都對網上質量參差不齊、沒有實際乾貨的課程感到深惡痛絕。所以在設計系列教程的時候,我們首要考慮的兩個要素就是:



基於此,我們會以每兩周一次的方式進行 5 次的系列課程教學,結合 MNN 工作檯 AI For Everyone 的低實踐門檻,帶來值得期待的知識分享。


✿  系列直播預告

插段廣告,如果你還不知道 MNN 工作檯是什麼,那就趕快前往 MNN 官網 www.mnn.zone 去下載吧。MNN 工作檯是淘系技術部 - 端智能團隊在今年 10 月份對外公測的一站式端側 AI 平臺。它是集低門檻預訓練模版、開箱即用算法集、多端一鍵部署於一體的機器學習工具箱,通過 MNN 工作檯,每個人都可以在幾分鐘內完成模型訓練並部署到手機上運行看到應用效果。


整體的課程大綱如下:


介紹移動端機器學習現狀

MNN For Swift 整體概覽






怎麼樣?看完大綱後是不是對使用 MNN For Swift 進行機器學習充滿了好奇?那就敬請期待我們後續的課程吧!


當然有人會問:「付出那麼多,你們想從這個課程中收穫什麼?」


很簡單,我們希望通過這個課程讓大家了解端智能是什麼、如何把端智能和自身的日常工作進行結合。對那些積極參與《MNN x Swift》系列課程的朋友,如果您對 MNN 和 Swift 有什麼獨到的見解或者建議,也會邀請您參與到我們的直播中,共同打造 MNN For Swift 的社區生態!


只有更多人一起來玩端智能,這個新興的領域才能受到更多的關注、獲得更長足的發展。



Why Swift


最後我們還想來談談為什麼 MNN 會選擇在這個時間點支持 Swift。


一直以來,因為其強大的社區活力和易用的特性,Python 始終把控著機器學習社區語言的頭把交椅(雖然 Julia 也發展的很迅猛)。Tensorflow、PyTorch 以及最新推出的 MNN 工作檯等主流的機器學習框架或工具更是和 Python 這門語言緊緊的交織在一起。


但是將 Python 搬到移動端上卻不是一件非常容易的事,引用 Tensorflow 對於移動端應用 Python 的觀點來看:





而自 2014 年 WWDC 正式發布之後,Swift 已經逐漸成為了蘋果開發者生態中的主流開發語言。作為一門比 Objective-C 更加現代化、更加安全的程式語言,Swift 已經獲得了國內外廣大開發者的喜愛。同時,應用 Swift 可以讓我們「免費」享受到蘋果工程師持續不斷的性能、穩定性優化成果。


更重要的一點是,當我們基於 Swift 實踐了部分機器學習開發工作後,我們驚訝的發現,Swift 竟然在機器學習領域有著與 Python 相媲美的表達特性。


用如下一段 Python 和 Swift 的 MNN 編程片段進行簡單對比:


Python 代碼:


input_data = F.placeholder([1, 3, image_height, image_width], F.NCHW, F.float)input_data.write(image_data)input_data = F.convert(input_data, F.NC4HW4)outputs = ocr_det_net.forward([input_data])[0]outputs = F.convert(outputs, F.NCHW)data = outputs.read()


同樣的代碼在 Swift 中:


var input_data = Expr.placeholder(shape: [1, 3, image_height, image_width],                                  dataFormat: .NCHW,                                  dtype: Float.self)input_data.write(data: image_data)input_data = Expr.convert(input: input_data, format: .NC4HW4)var output = ocr_det_net.onForward(inputs: [input_data])[0]output = Expr.convert(input: output, format: .NCHW)let data = output.read()


毫不誇張的說,如果不加以提示,可能根本不會感受到二者的異同,可見二者在語法表達上十分接近。


除了同樣充分的表達性以外,Swift 在移動開發領域天然的優勢(蘋果大力支持)以及語言自身的安全特性都讓 Swift 比起 Python 而言更適合移動端機器學習。


這也是我們為什麼下定決心要開展 MNN For Swift 的重要原因。


在內部項目中,我們已經用 MNN For Swift 與 SwiftUI 完成了機器學習應用的編寫,91% 的代碼均為 Swift。由此可見 Swift 在移動端機器學習領域是能讓開發者快速上手,降低開發者的開發門檻的一門優秀語言。所以不要猶豫,趕緊把 MNN For Swift 學起來。



結語


紙上得來終覺淺,絕知此事要躬行。不要再為自己每天還在糊 UI、畫 Label 、組裝 TableView 而感到焦慮。通過《MNN x Swift 機器學習實戰》,我們希望讓大家感受到深度學習不止是從事算法專業人員的「獨門武器」、也不是大廠宣傳秀肌肉的利器,而是讓所有愛好技術的人都能參與實踐的自我提升手段。


也希望藉助 MNN For Swift 項目及系列課程,讓大家感受到 MNN 積極擁抱社區、響應開發者呼聲的熱情與決心,給開發者們緩解一絲冬季的焦慮。

✿  拓展閱讀

作者|明弈、星志

編輯|橙子君

出品|阿里巴巴新零售淘系技術


相關焦點

  • 移動端模型部署利器,阿里 MNN 正式版發布!
    在阿里巴巴集團內部得到廣泛推廣,成為了端上推理引擎的事實標準,覆蓋了如手機淘寶、手機天貓、優酷、釘釘、閒魚等20多個 App 。2. 新添了模型訓練的支持,從此 MNN 不再是單純的推理引擎,而是具有推理+訓練能力的深度學習引擎。基於 MNN 的訓練能力,我們可以進行 Quantization-Aware Training(QAT)。
  • MNN: 高效地移動端推理引擎
    Efficient Inference EngineMNN的優勢:pre-inference 管理運行時優化, 優化使用在線cost評估和最優算法流程選擇;深度算子內核優化獲得最優計算性能, 使用了改進的算法和數據局部 ;後端抽象模塊, 混合調度,引擎輕量移動端推理框架
  • 一年的打磨,MNN正式版發布!
    在阿里巴巴集團內部得到廣泛推廣,成為了端上推理引擎的事實標準,覆蓋了如手機淘寶、手機天貓、優酷、釘釘、閒魚等20多個 App 。2. 新添了模型訓練的支持,從此 MNN 不再是單純的推理引擎,而是具有推理+訓練能力的深度學習引擎。基於 MNN 的訓練能力,我們可以進行 Quantization-Aware Training(QAT)。
  • 機器學習實戰
    想快速入門機器學習領域的童鞋還等什麼?!看小編介紹的這個課程就可以啦!!
  • 機器學習實戰系列課程 | 監督式學習(下)回歸
    繼《基於 Python 的機器學習快速實戰》《監督式學習(上)分類》之後,計蒜客機器學習實戰系列課程第三節《監督式學習(下)回歸 》也相繼上線。本課程是《Python 機器學習實戰》系列課程的第三部分。在這門課裡,我們要向大家介紹另一種常見的監督學習問題——回歸問題。有的時候,我們需要預測的結果,並不是可以分類的離散型數據,而是一段連續型的數值——比如人數、價格等。對於這類數值結果的預測,就是所謂的回歸問題。
  • 阿里巴巴開源輕量級深度神經網絡推理引擎MNN
    點擊我愛計算機視覺標星,更快獲取CVML新技術導讀:在移動端進行深度神經網絡推理,可以使用騰訊開源的ncnn,或者小米開源的Mace
  • 谷歌發布了機器學習深度課程,很難畢業的那種 | 這不是MLCC
    如今,以幾個月前谷歌的機器學習速成課程 (MLCC) 為基礎,兩間公司繼續聯手,發布了一套機器學習專項課程,包含五門課,比以前更加專注於實戰了。天天小測更健康新課程的全稱為,Machine Learning with TensorFlow on Google Cloud Platform (在谷歌雲平臺上用TensorFlow幹機器學習) 。
  • 課程|最後3個名額!中國移動OneNET物聯網實戰課程,很香
    有關注柴火的小夥伴們應該知道,自2020年以來,圍繞建立雙創人才會員生態體系,柴火特別推出了包括「 硬體入門 」、「 物聯網應用實戰 」和「 社區聯名 」三大課程在內的柴火新一代信息技術賦能培訓體系。目前,「 硬體入門 」課程首期班學員已順利結業,第二期和第三期課程目前也均已爆滿。「 物聯網應用實戰 」首期班,也將於7月xx,正式亮相。
  • Swift 周報 第五期
    前言 Apple 舉辦了 Unleashed 活動發布了新品,藉助超強的 M1 Pro 或 M1 Max 晶片,不管是基於新款的 MacBook Pro 開發應用,還是開發 MacBook Pro 下的應用,新機都將給我們帶來突破性的性能和驚人的電池使用時長。
  • 我這裡所有的Python、AI、機器學習課程,全部免費開放
    如果你想學習人工智慧知識,可以免費學習「極客時間人工智慧系列課程」,可以學到人工智慧最新行業解讀、機器學習知識、Python實戰等課程。首先,導師均來自一線技術企業,負責過大型項目,擁有豐富的技術實戰經驗,並且對Python、人工智慧等有自己獨到的見解。其次,在課程中,導師們會將核心知識與實際應用結合起來,讓你學完能解決實際中的問題,提高研發效能。《AI技術內參》這門課的導師洪亮劼是電子商務平臺 Etsy 數據科學主管,長期從事機器學習與人工智慧的基礎以及應用研究。
  • React.js入門與實戰 開發適配PC端及移動端新聞頭條平臺網盤高清全新全系列精品課程
    您好,您需要的課程【React.js入門與實戰 開發適配PC端及移動端新聞頭條平臺網盤高清全新全系列精品課程】,我們這裡都有。
  • 中國移動OneNET物聯網實戰課程,很香
    有關注柴火的小夥伴們應該知道,自2020年以來,圍繞建立雙創人才會員生態體系,柴火特別推出了包括「 硬體入門 」、「 物聯網應用實戰 」和「 社區聯名 」三大課程在內的柴火新一代信息技術賦能培訓體系。目前,「 硬體入門 」課程首期班學員已順利結業,第二期和第三期課程目前也均已爆滿。「 物聯網應用實戰 」首期班,也將於7月xx,正式亮相。
  • MNN推理引擎框架簡介
    1.MNN介紹隨著手機算力的不斷提升,以及深度學習的快速發展,特別是小網絡模型不斷成熟,原本在雲端執行的推理預測就可以轉移到端上來做。端智能即在端側部署運行AI算法,相比服務端智能,端智能具有低延時、兼顧數據隱私、節省雲端資源等優勢。
  • [Swift基礎] 麥子學院iOS開發視頻教程從入門到精通
    >02 課程目錄03 獲取方式零基礎學習,講課通俗易懂,由淺入深,從基礎到後面的項目實戰部分都一一講解。第一階段:語言基礎和iOS入門1、秒學Swift開發語言,坐標系計算機語言學法2、初始Objective-C3、iOS8 App開發快速入門4、iOS開發語言 swift 2.2基礎第二階段:玩轉界面1、swift2.0-iOS玩轉UIKit2、IOS動畫編程3、IOS多點觸控與手勢識別
  • MNN推理引擎最新實測,CPU、GPU性能全面領先!
    而今,TNN又一次在移動性能上又邁出了一步。作為開源社區的一員,來,我們歡迎…emmm…這一位到底是該稱為老戲骨還是小鮮肉…加入社區性能毒打群和諧友愛的大社區。想點大事如果跳出引擎的小圈子,放眼整個AI生態圈,端側AI近幾年發展到底怎麼樣呢?我們以雲側AI為標尺,可以把端側AI拆解為上下兩層:如前所述,不只是性能,推理引擎在通用性、易用性等方面還有待完善。
  • 蘋果宣傳使用Swift開發的第三方App 以及大學開設Swift課程
    點擊上方「CocoaChina」即可關注隨著蘋果新品發布會結束,我們迎來了新iPad、Mac家族更新、OS X Yosemite正式版、iTunes 12.01等,相比較起來,另一個不太起眼的發布是,蘋果在其官方網站發布了一個mini站點(http://www.apple.com/swift/),宣傳使用Swift開發的第三方App以及部分大學開設Swift課程。
  • Python機器學習實戰 —— KNN算法詳解
    這個系列按照機器學習實戰的章節來寫,由於市面上已經有很多同類的文章,一般以介紹算法,貼代碼,舉例子為主,個人讀下來,覺得對於實現的代碼還是不能有很好的理解,所有有了這個系列。sorted(list1,key = lambda x:(x<0,x<0 and -x,x))Out[28]:  [0, 4, 5, 7, -2, -5, -8]解法2:sorted(list1,key=lambda x:(x<0,abs(x)))Out[29]: [0, 4, 5, 7, -2, -5, -8]講完這幾個函數,對照機器學習實戰的原始碼
  • 分享:唐宇迪計算機視覺Python3 opencv 項目實戰 唐宇迪 機器學習實戰 python 百度雲網盤分享
    我購買了唐宇迪計算機視覺Python3 opencv 項目實戰 唐宇迪 機器學習實戰 python 課程,已經學完了,可低價分享給需要的朋友,加入萌萌家成長社群可免費獲取
  • Swift 3.0 發布!
    這是 Apple 開源 Swift 之後首次發布[1]的重大版本。
  • 谷歌發布全球首個產品級移動端分布式機器學習系統,數千萬手機同步訓練
    這些手機能協同學習一個共享模型,所有的訓練數據都留在設備端,確保了個人數據安全,手機端智能應用也能更快更低能耗更新。研究人員表示,該系統有望在幾十億部手機上運行。新年大手筆的不止是騰訊,谷歌近日宣布,他們實現了全球首個產品級的超大規模移動端分布式機器學習系統,目前已經能夠在數千萬部手機上運行。