亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS 將來 Swift 也許會取代 Python

  發(fā)布時間:2019-09-17 15:56:01   作者:賣姑娘的小火材   我要評論
Swift 是由 Chris Lattner 在蘋果工作時創(chuàng)建的。這意味著 Swift 版的 TensorFlow 并不是一個代碼庫, 它本身就是一種語言,它內(nèi)置的功能支持 TensorFlow 所需的所有功能

@All Developer,如果你準(zhǔn)備研究深度學(xué)習(xí),提高自己的能力,個人建議你開始學(xué)習(xí) Swift 語言。(因為 Swift 是世界上最好的語言,開玩笑的。:laughing::laughing::laughing:)

當(dāng)程序員聽到 Swift 時,可能會聯(lián)想到蘋果,也可能會聯(lián)想到 iOS 或 MacOS 的應(yīng)用開發(fā)。如果你準(zhǔn)備研究深度學(xué)習(xí),那么你一定聽說過 Swift 版的 TensorFlow。你可能不禁想問:“為什么 Google 會創(chuàng)建 Swift 版的 TensorFlow?現(xiàn)在已經(jīng)有 Python 和 C++ 版本了,為什么還要添加另一種語言?”

我將在這篇文章中為你解答這個問題,并概述為什么你需要留意 Swift 版的TensorFlow 以及 Swift 語言本身。我不打算在文本中提供詳細(xì)的解釋,但是我會提供大量鏈接,如果你對這個話題感興趣的話,你可以深入挖掘。

1. Swift 擁有強力的后援

Swift 是由 Chris Lattner 在蘋果工作時創(chuàng)建的。目前,Chris Lattner 在 Google Brain 工作 —— 這是世界上最先進(jìn)的人工智能研究團(tuán)隊之一。 Swift 語言的創(chuàng)始人如今在研究深度學(xué)習(xí)的實驗室工作,這個事實說明這是一個重大的項目。

前段時間,Google 意識到盡管 Python 是一種優(yōu)秀的語言,但它仍有許多難以克服的局限性。TensorFlow 需要一種新語言,經(jīng)過長時間的考慮后,這個重任落到了 Swift 肩上。我不打算對此做詳細(xì)的介紹,但是你可以自行閱讀這篇 文檔 ,文中描述了Python的缺點,有關(guān)其他語言的考量,以及最終選中了 Swift 的經(jīng)過。

2. Swift 版的 TensorFlow 不僅僅是一個代碼庫

Swift 版的 TensorFlow 不僅僅是另一種語言的 TensorFlow。

從本質(zhì)上來說,它是 Swift 語言的另一個分支(就像在 git 上創(chuàng)建 branch 一樣)。這意味著 Swift 版的 TensorFlow 并不是一個代碼庫, 它本身就是一種語言,它內(nèi)置的功能支持 TensorFlow 所需的所有功能。

例如, Swift 版的 TensorFlow 擁有非常強大的自動微分系統(tǒng),這是深度學(xué)習(xí)計算梯度所需的基礎(chǔ)。相比之下,Python 的自動微分系統(tǒng)不是語言的核心組成部分。有一些最初為 Swift 版的 TensorFlow 開發(fā)的功能后來被集成到了 Swift 語言本身中。

3. Swift 非常快

當(dāng)?shù)谝淮蔚弥?Swift 的運行速度與 C 代碼一樣快時,我感到非常驚訝。我知道 C 經(jīng)過了高度優(yōu)化,且可以實現(xiàn)非常高的速度,但這需要以微內(nèi)存管理為代價,因此 C 不能保證內(nèi)存的安全。此外,C 不是一種非常容易學(xué)習(xí)的語言。

如今, Swift 的數(shù)值計算速度與 C 一樣快,還沒有內(nèi)存安全的問題,而且更容易學(xué)習(xí)。 Swift 背后的 LLVM 編譯器功能非常強大,并且擁有非常高效的優(yōu)化功能,可以確保代碼快速地運行。

4. 你可以在 Swift 中使用 Python、C 和 C++ 代碼

由于 Swift 的機器學(xué)習(xí)才剛剛開始,因此 Swift 的機器學(xué)習(xí)庫并不多。然而,你無需擔(dān)心,因為 Swift 可以很好地與 Python 語言結(jié)合。你只需在 Swift 中導(dǎo)入 Python 庫,就可以放心使用了。 與此同時,你還可以將 C 和 C++ 庫導(dǎo)入到 Swift 中(對于 C++,你需要確保頭文件是用純 C 編寫的,沒有 C++ 的特性)。

總而言之,如果你需要的某個特定的功能尚未在 Swift 中實現(xiàn),則可以導(dǎo)入相應(yīng)的 Python、C 或 C++ 包。這一點簡直逆天了!

5. Swift 還可以深入底層

如果你曾經(jīng)使用過 TensorFlow,那么很可能是通過 Python 包來實現(xiàn)的。在底層,Python 版的 TensorFlow 是用 C 實現(xiàn)的。所以在 TensorFlow 中調(diào)用函數(shù)時,你一定會在某個層面上遇到一些 C 代碼。這意味著在你查看源代碼的時候,會遇到一些限制。例如,你想看看卷積的實現(xiàn)方式,卻發(fā)現(xiàn)看不到 Python 代碼,因為它是用 C 實現(xiàn)的。

然而,在 Swift 中情況有所不同。Chris Lattner 稱 Swift 是 “LLVM [匯編語言]的語法糖”。這意味著從本質(zhì)上講, Swift 非??拷布?, Swift 與硬件之間沒有其他用 C 寫的附加層。這也意味著 Swift 代碼非???,如上所述。

因此,開發(fā)人員能夠檢查所有的代碼,無論是高層的代碼還是非常底層的代碼,都無需深入 C。

6. 將來的發(fā)展

Swift 只是 Google 深度學(xué)習(xí)創(chuàng)新的一部分。還有另一個非常密切相關(guān)的組件:MLIR(Multi-Level Intermediate Representation,多層中間表示)。MLIR 將會成為 Google統(tǒng)一的編譯基礎(chǔ)設(shè)施,它允許你用 Swift (或任何其他支持的語言)編寫代碼,并編譯成任何支持的硬件。

目前,有許多針對不同目標(biāo)硬件的編譯器,但 MLIR 將改變這種局面,它不僅可以支持代碼的可重用性,而且還允許你編寫編譯器自定義的底層組件。同時,它還允許研究人員應(yīng)用機器學(xué)習(xí)來優(yōu)化低級算法:

雖然 MLIR 是機器學(xué)習(xí)的編譯器,但我們也看到它可以將機器學(xué)習(xí)的技術(shù)應(yīng)用到編譯器本身!這一點非常重要,因為工程師開發(fā)數(shù)值計算庫的速度跟不上機器學(xué)習(xí)模型或硬件多元化的速度。

想象一下,我們能夠使用深度學(xué)習(xí)來優(yōu)化處理數(shù)據(jù)的底層內(nèi)存切片算法(類似于 Halide 正在努力完成的任務(wù))。而且,這只是一個開端,還有其他機器學(xué)習(xí)的創(chuàng)造性應(yīng)用也可以在編譯器中使用!

總結(jié)

如果你準(zhǔn)備研究深度學(xué)習(xí),個人建議你開始學(xué)習(xí) Swift 語言。與 Python 相比, Swift 擁有多方面的優(yōu)勢。Google 正在大力投資,讓 Swift 成為 TensorFlow 多層基礎(chǔ)設(shè)施的關(guān)鍵組成部分,而且 Swift 很可能成為深度學(xué)習(xí)的語言。 因此,先下手為強,盡早開始學(xué)習(xí) Swift 吧。

相關(guān)文章

  • 實體關(guān)系圖(E-R圖)基本概念詳解

    這篇文章主要介紹了實體關(guān)系圖(E-R圖)基本概念詳解,講解了E-R圖是什么,以及在建立關(guān)系等概念,需要的朋友可以參考下
    2021-08-26
  • E-R圖實例圖文詳解

    這篇文章主要介紹了E-R圖實例圖文詳解,本文通過題目給定實體,要求等做出E-R圖,多個實例來詳細(xì)講述了該項技術(shù),需要的朋友可以參考下
    2021-08-26
  • 軟件開發(fā)過程之需求分析步驟詳解

    這篇文章主要介紹了軟件開發(fā)過程之需求分析步驟詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-25
  • 幾種常用的軟件生命周期模型詳解整合

    本文通過詳細(xì)圖文介紹簡要的介紹了軟件生命周期模型的內(nèi)容,內(nèi)容包括瀑布模型,增量模型,演化模型,噴泉模型等內(nèi)容,希望該篇文章能夠?qū)δ阌兴鶐椭?/div> 2021-08-25
  • 軟件生命周期各個階段詳細(xì)描述

    這篇文章主要介紹了軟件生命周期各個階段詳細(xì)描述,通過詳細(xì)的分類介紹了軟件生命周期的階段內(nèi)容,通過本篇文章你可以大致了解該項內(nèi)容,,需要的朋友可以參考下
    2021-08-25
  • 軟件工程概要介紹

    這篇文章主要介紹了軟件工程概要介紹,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-24
  • iOS 將來 Swift 也許會取代 Python

    Swift 是由 Chris Lattner 在蘋果工作時創(chuàng)建的。這意味著 Swift 版的 TensorFlow 并不是一個代碼庫, 它本身就是一種語言,它內(nèi)置的功能支持 TensorFlow 所需的所有功能
    2019-09-17
  • 什么是框架?框架的作用是什么?為什么要學(xué)習(xí)框架?

    這篇文章主要介紹了什么是框架?框架的作用是什么?為什么要學(xué)習(xí)框架?下面就簡單介紹給大家,感興趣的可以了解一下
    2019-08-14
  • C++難學(xué)嗎?為什么難學(xué)?如何去學(xué)?

    經(jīng)常上網(wǎng),發(fā)現(xiàn)最多人問的問題就是C++難不難學(xué)。而得到的回答卻基本上是說很難學(xué),甚至有說要兩年才算入門。那么C++難學(xué)嗎?為什么難學(xué)?如何去學(xué)?下面我們就一起來了解一
    2019-08-12
  • 大數(shù)據(jù)入門必看:Hive、Hadoop、Storm詮釋(小結(jié))

    這篇文章主要介紹了大數(shù)據(jù)入門必看:Hive、Hadoop、Storm詮釋(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-08-09

最新評論