在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Swift“背景硬”:背后有強大的支持

DPVg_AI_era ? 來源:lq ? 2019-06-07 11:01 ? 次閱讀

Yann LeCun曾說,深度學習可能需要一種新的編程語言了。現在Swift來了!沒錯,這就是讓萬千飽受Python缺點困擾的開發者興奮不已的深度學習語言。本文便將帶領讀者詳細了解一下為什么Swift將成為深度學習的下一大熱門。

當你聽到Swift的時候,第一反應肯定會想到iOS或者MacOS的應用程序開發。當你玩兒過深度學習,也肯定聽說過Swift for Tensorflow(縮寫為S4TF)。

而后你就會產生困惑:“為什么谷歌要為Swift創建TensorFlow版本呢?已經有了Python和C++版本了,為什么還要添加另一種語言?”

在這篇文章中,作者將嘗試回答這些問題,并告訴你為什么要認真遵循S4TF以及Swift語言本身。 本文的目的不是提供非常詳細的解釋,而是提供下文大量鏈接內容的一般概述,方便讀者深入挖掘。

Swift for Tensorflow官方地址:

https://www.tensorflow.org/swift/

Swift“背景硬”:背后有強大的支持

Swift是Chris Lattner在蘋果公司工作時創建的。Swift語言的創造者現在在實驗室從事深度學習的研究,這一事實應該告訴你,這就是一個嚴肅的項目。

前段時間,谷歌的員工意識到一件事情:盡管Python是一種優秀的語言,但它有許多難以克服的局限性——TensorFlow需要一種新的語言。

經過長時間的考慮,Swift被選為候選語言。作者沒有在本文詳細介紹,但下方鏈接中的文檔描述了Python的缺點、在候選語言篩選過程中考慮哪些語言,以及最終為何Swift當選。

https://github.com/tensorflow/swift/blob/master/docs/WhySwiftForTensorFlow.md

對于TensorFlow來說,Swift不僅僅是一個庫

Swift對于TensorFlow不僅僅是另一種語言的TF。

它本質上是Swift語言本身的另一個分支(在git術語中)。這意味著S4TF不是一個庫;它本身就是一種語言,內置了支持TensorFlow所需的所有功能的特性。

例如,S4TF中有非常強大的自動微分系統,這是計算梯度所需要的深度學習的基礎之一。對比一下Python,在Python中,自動微分不是語言的核心組件。最初作為S4TF的一部分開發的功能后來被集成到Swift語言本身。

Git地址:

https://git-scm.com/book/en/v1/Git-Branching-What-a-Branch-Is

有關自動微分:

https://github.com/tensorflow/swift/blob/master/docs/AutomaticDifferentiation.md

Swift速度極快

當作者第一次知道Swift的運行速度和C代碼一樣快時,作者表示非常驚訝。

我們知道C語言是高度優化的,可以達到非常高的速度,但這是以微管理內存為代價的,這導致C語言不是內存安全的。此外,C語言并不是一門很容易學的語言。

現在,Swift在數值計算中運行得和C一樣快,而且它沒有內存安全問題,而且它更容易學習。Swift背后的LLVM編譯器非常強大,并且有非常高效的優化,這就確保了代碼運行的速度。

Swift為何和C一樣快:

https://www.fast.ai/2019/01/10/swift-numerics/

在Swift中可以使用Python,C和C ++代碼

由于適用于機器學習的Swift還處于早期階段,這意味著適合Swift的機器學習庫并不多。

但不必過于擔心這一點,因為Swift具有驚人的Python互操作性。

只需導入Swift中的任何Python庫,它就能正常工作。類似地,可以將C和C++的庫導入Swift(對于C++,需要確保頭文件是用純C編寫的,沒有C++特性)。

有關Python互操作性:

https://github.com/tensorflow/swift/blob/master/docs/PythonInteroperability.md

導入C和C++庫:

https://oleb.net/blog/2017/12/importing-c-library-into-swift/

總而言之,如果需要特定功能,但尚未在Swift中實現,則可以導入相應的Python,C或C ++包。

Swift可以在非常底層的地方運行

如果你曾經使用過TensorFlow,那么通常情況下可能是通過Python包完成的。

在底層,Python版本的TensorFlow庫底層有C代碼。所以當你調用TensorFlow中的任何函數時,在某種程度上你會碰到一些C代碼。

這意味著檢查源代碼的速度是有限的。例如,如果你想了解卷積是如何實現的,你無法看到Python代碼,因為它是在C語言中實現的。

在Swift中,情況就不同了。Chris Lattner稱Swift是“LLVM(匯編語言)的語法糖”。

從本質上說,Swift非常接近硬件,而且在硬件之間沒有其他用C編寫的代碼層。這也意味著Swift代碼運行速度非常快。這就使得開發人員能夠從高到低,任何層次都可以開始檢查代碼,而無需使用C。

有關“LLVM(匯編語言)的語法糖”:

https://www.fast.ai/2019/03/06/fastai-swift/

接下來的一步

Swift只是谷歌深度學習創新的一部分。還有一個非常相關的組件:MLIR,代表多級中間表示。

MLIR將是谷歌統一的編譯器基礎設施,允許用Swift(或任何其他受支持的語言)編寫代碼,并將其編譯到任何受支持的硬件。

目前,針對不同的目標硬件有大量的編譯器,但是MLIR將改變這一點,不僅允許代碼重用,還允許編寫定制的編譯器底層組件。它還將允許研究人員應用機器學習來優化底層算法

雖然MLIR充當ML的編譯器,但我們也看到它可以在編譯器中使用機器學習技術!一點尤其重要,因為開發數值庫的工程師的擴展速度趕不上ML模型或硬件的多樣化。

想象一下,如果我們能夠使用深度學習來幫助優化數據的低級內存分塊算法(類似于Halide試圖完成的任務)會怎么樣。

有關MLIR:

https://medium.com/tensorflow/mlir-a-new-intermediate-representation-and-compiler-framework-beba999ed18d

有關Halide:

https://www.youtube.com/watch?v=3uiEyEKji0M

總結

如果你對深入學習感興趣,那么Swift是一門你應該開始學習的語言。

與Python相比,它有許多優勢。谷歌正在大力投資,使Swift成為其TensorFlow ML基礎設施的一個關鍵組件,而且很有可能Swift將成為深度學習的語言。

所以,早點學習Swift總不會有錯的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SWIFT
    +關注

    關注

    0

    文章

    116

    瀏覽量

    23809
  • python
    +關注

    關注

    56

    文章

    4800

    瀏覽量

    84820
  • 深度學習
    +關注

    關注

    73

    文章

    5507

    瀏覽量

    121298

原文標題:為什么說Swift將接任Python成為深度學習下一任“掌門”?

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TPSM843620 SWIFT?降壓評估模塊

    電子發燒友網站提供《TPSM843620 SWIFT?降壓評估模塊.pdf》資料免費下載
    發表于 12-05 14:05 ?0次下載
    TPSM843620 <b class='flag-5'>SWIFT</b>?降壓評估模塊

    TPS542A50 SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS542A50 SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 12-04 16:25 ?0次下載
    TPS542A50 <b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    TPS541620 2相SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS541620 2相SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 11-27 15:21 ?0次下載
    TPS541620 2相<b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    TPS542A52 SWIFT?降壓轉換器評估模塊用戶指南

    電子發燒友網站提供《TPS542A52 SWIFT?降壓轉換器評估模塊用戶指南.pdf》資料免費下載
    發表于 11-24 13:59 ?0次下載
    TPS542A52 <b class='flag-5'>SWIFT</b>?降壓轉換器評估模塊用戶指南

    Swift 6.0引領編程語言新趨勢

    近日,蘋果公司公布了一系列重磅消息:推出iOS/iPadOS 18和macOS 15 Sequoia等操作系統更新,以及Swift編程語言的全新版本——Swift 6.0。此番升級重點關注編程安全性、并發處理能力的提升,并大幅擴展了Sw
    的頭像 發表于 09-20 15:57 ?372次閱讀

    功能強大的網絡通訊工具,支持各類TCP、UDP、HTTP的通訊協議

    功能強大的網絡通訊工具,支持各類TCP、UDP、HTTP的通訊協議,簡單方便,包含歷史記憶功能,體積小,服務器調試最合適
    發表于 09-05 11:51 ?0次下載

    SDV的發展背景背景與功能

    的期望日益增長,傳統的機械與電子系統已無法滿足市場的需求。例如,現代用戶可能期望其車輛能夠提供從導航到在線娛樂等一系列智能功能,這些都需要強大的軟件支持來實現。 嚴格的安全法規:全球范圍內對汽車安全性的要求正在不斷提升,涉及被
    的頭像 發表于 08-29 10:23 ?459次閱讀

    探秘鍍金工藝PCB板:卓越性能的背后秘密

    金工藝是在PCB 板表面鍍上一層硬度較高的金層。這一工藝的首要目的是增強 PCB 板的電接觸性能。
    的頭像 發表于 08-13 17:43 ?478次閱讀

    蘋果推出全新開源Swift軟件包

    七月三十一日,蘋果企業總部對外正式發表公告,宣布昨日(即七月二十九日)成功推出全新的開源 Swift 軟件包—— (喚名為 swift-homomorphic-encryption)。此舉旨在為 Swift 編程語言帶來應用便利
    的頭像 發表于 07-31 15:17 ?401次閱讀

    支持 AVSO 和全差分感應功能的 SWIFT? 同步降壓轉換器TPS548D21數據表

    電子發燒友網站提供《支持 AVSO 和全差分感應功能的 SWIFT? 同步降壓轉換器TPS548D21數據表.pdf》資料免費下載
    發表于 04-25 09:32 ?0次下載
    <b class='flag-5'>支持</b> AVSO 和全差分感應功能的 <b class='flag-5'>SWIFT</b>? 同步降壓轉換器TPS548D21數據表

    支持斷續模式的4.5V至17V輸入、8A同步降壓 SWIFT? 轉換器TPS54821數據表

    電子發燒友網站提供《支持斷續模式的4.5V至17V輸入、8A同步降壓 SWIFT? 轉換器TPS54821數據表.pdf》資料免費下載
    發表于 04-19 09:28 ?0次下載
    <b class='flag-5'>支持</b>斷續模式的4.5V至17V輸入、8A同步降壓 <b class='flag-5'>SWIFT</b>? 轉換器TPS54821數據表

    啟英泰倫連續第五年上榜 “成都科技撲克牌榜單”

    、線上公眾投票三種方式,啟英泰倫連續第5年入選科技撲克牌榜單“方塊Q”,不僅彰顯了公司強大的實力,更體現了公司持續而穩定的創新能力。科技年會現場獲獎獎杯在當前
    的頭像 發表于 03-30 08:14 ?393次閱讀
    啟英泰倫連續第五年上榜 “成都<b class='flag-5'>硬</b>科技撲克牌榜單”

    什么是開關?什么是軟開關 開關和軟開關的優缺點

    什么是開關?什么是軟開關 開關和軟開關的優缺點 開關和軟開關是電力系統中常用的兩種開關方式。它們在功率傳輸和電力控制方面有著不同的特點和應用。 開關是通過物理機械開關,以切斷或
    的頭像 發表于 02-20 11:43 ?7592次閱讀

    對稱電池測試怎么分析?什么是軟短路,什么是短路?

    對稱電池測試怎么分析?什么是軟短路,什么是短路? 對稱電池測試是一種針對電池的測試方法,旨在評估電池的對稱性能和電池內部是否存在短路現象。軟短路和短路是兩種不同類型的短路情況,它們在電池測試中
    的頭像 發表于 02-18 16:26 ?4200次閱讀

    Linux中的軟、鏈接的區別

    類似于windows的快捷方式,—>表示真實文件的地址   2:鏈接   命令: ln /etc/inittab /test/inittab.hard   查看: ls -l /etc
    發表于 02-04 16:34
    主站蜘蛛池模板: 亚洲国产女人aaa毛片在线| 一级毛片日韩a欧美| 欧美女同在线| 伊人久久网站| 春宵福利网站| 亚色在线| 日日爱视频| 成人激情综合网| 狼人久久尹人香蕉尹人| 99成人在线| 国产黄色大片又色又爽| 美女网色| 色天使亚洲综合在线观看| 欧美一级特黄啪啪片免费看| 五月天色婷婷丁香| 日韩欧美国产电影| 免费欧美| 欧美第一色| 日韩毛片免费在线观看| 美女张开大腿让男人桶| 国产999星空传媒在线观看| 午夜96影视| 天天干网站| 国产精品9999| 亚洲欧美一区二区三区图片| 综合成人在线| 日本a级免费| 国产黄色大片又色又爽| 人人干人人玩| 69pao强力打造在线| 亚洲一区二区三区免费视频| xxⅹ丰满妇女与善交| 最近2018中文字幕2019视频| 上一篇26p国模| 日韩成人一级| 韩国a级床戏大尺度在线观看| 国产亚洲人成a在线v网站| 国产怡红院| 天天草综合网| 亚洲一区色| 涩多多在线观看|