<small id='9lavcXZKrw'></small> <noframes id='40VGBvyL'>

  • <tfoot id='RKrtU6zPA'></tfoot>

      <legend id='F7oVDjugs'><style id='M7VmeZR2g'><dir id='Xz8yRBfGlh'><q id='rtORH5hiPK'></q></dir></style></legend>
      <i id='fWUja3'><tr id='kvjFHd3sbu'><dt id='71Kw'><q id='F641kow8'><span id='W97nOq6R8'><b id='Sw0GX3'><form id='DKe4xVjliW'><ins id='jVGicYn'></ins><ul id='adyPO'></ul><sub id='RGUzkP'></sub></form><legend id='Xlf5nVmZk'></legend><bdo id='GS7BaRgnoh'><pre id='iaNpXIs3'><center id='6UQV0'></center></pre></bdo></b><th id='m7tC'></th></span></q></dt></tr></i><div id='URwjA'><tfoot id='ucnDoFPYS'></tfoot><dl id='LmZEzU'><fieldset id='GVOBq'></fieldset></dl></div>

          <bdo id='dQSIgrZ'></bdo><ul id='aoxu'></ul>

          1. <li id='tT6lmQr0z9'></li>
            登陆

            一号站登录网址-Swift 要脚踩 Python上位?程序猿:凭什么啊?

            admin 2019-07-02 325人围观 ,发现0个评论

            当程序员听到Swift时,或许都会联想到iOS或MacOS的运用开发。假如你正在研讨深度学习,那么你必定听说过Swift版的TensorFlow。你或许不由想问:“为什么Google会创立Swift版的TensorFlow?现在已经有Python和C++版别了,为什么还要增加另一种言语?”

            我将在这篇文章中为你回答这个问题,并概述为什么你需求留心Swift版的TensorFlow以及Swift言语自身。我不计划在文本中供给具体的解说,可是我会供给很多链接,假如你对这个论题感兴趣的话,那么能够深化发掘。



            Swift具有强力的后援


            Swift是由Chris Lattner在苹果作业时创立的。现在,Chris Lattner在Google Brain作业——这是世界上最先进的人工智能研讨团队之一。 Swift言语的创始人现在在研讨深度学习的实验室作业,这个现实阐明这是一个严重的项目。

            前段时间,Google意识到尽管Python是一种优异的言语,但它仍有许多难以克服的局限性。TensorFlow需求一种新言语,经过长期的考虑后诺曼底登陆,这个重担落到了Swift肩上。我不计划对此做具体的介绍,可是你能够自行阅览这篇文档(https://github.com/tensorflow/swift/blob/master/docs/W一号站登录网址-Swift 要脚踩 Python上位?程序猿:凭什么啊?hySwiftForTensorFlow.md),文中描绘了Python的缺陷,有关其他言语的考量,以及终究选中了Swift的经过。



            Swift版的TensorFlow不仅仅是一个代码库


            Swift版的TensorFlow不仅仅是另一种言语的TensorFlow。

            从本质上来说,它是Swift言语的另一个分支(就像在git上创立branch相同)。这意味着Swift版的TensorFlow并不是一个代码库, 它自身便是一种言语,它内置的功用支撑TensorFlow所需的一切功用。

            例如,Swift版的TensorFlow具有十分强壮的主动微分体系,这是深度学习核算梯度所需的根底。比较之下,Python的主动微分体系不是言语的中心组成部分。有一些开端为Swift版的TensorFlow开发的功用后来被集成到了Swift言语自身中。



            Swift十分快


            当第一次得知Swift的运转速度与C代码相同快时,我感到十分惊奇。我知道C经过了高度优化,且能够完成十分高的速度,但这需求以微内存办理为价值,因而C不能保证内存的安全。此外,C不是一种十分简单学习的言语。

            现在,Swift的数值核算速度与C相同快,还没有内存安全的问题,并且更简单学习。Swift背面的LLVM编译器功用十分强壮,并且具有十分高效的优化功用,能够保证代码快速地运转。



            你能够在Swift中运用Python、C和C++代码


            由于Swift的机器学习才刚刚开端,因而Swift的机器学习库并不多。但是,你无需忧虑,由于Swift能够很好地与Python言语结合。你只需在Swift中导入Python库,就能够放心运用了。

            与此一起,你还能够将C和C++库导入到Swift中(关于C++,你需求保证头文件是用纯C编写的,没有C++的特性)。

            总而言之,假如你需求的某个特定的功用尚未在Swift中一号站登录网址-Swift 要脚踩 Python上位?程序猿:凭什么啊?完成,则能够导入相应的Python、C或C++包。这一点几乎逆天了!



            Swift还能够深化底层


            假如你从前运用过TensorFlow,那么很或许是经过Python包来完成的。在底层,Python版的TensorFlow是用C完成的。所以在TensorFlow中调用函数时,你必定会在某个层面上遇到一些C代码。这意味着在你查看源代码的时分,会遇到一些约束。例如,你想看看卷积的完成方法,却发现看不到Python代码,由于它是用C完成的。

            但是,在Swift中状况有所不同。Chris Lattner称Swift是“LLVM [汇编言语]的语法糖”。这意味着从本质上讲,Swift十分接近硬件,Swift与硬件之间没有其他用C写的附加层。这也意味着Swift代码十分快,如上所述。

            因而,开发人员能够查看一切的代码,无论是高层的代码仍是十分底层的代码,都无需深化C。



            将来的开展


            Swift仅仅G一号站登录网址-Swift 要脚踩 Python上位?程序猿:凭什么啊?oogle深度学习立异的一部分。还有另一个十分密切相关的组件:MLIR(Multi-Level Intermediate Representation,多层中心表明)。MLIR将会成为Google一致的编译根底设施,它答应你用Swift(或任何其他支撑的言语)编写代码,并编译成任何支撑的硬件。

            现在,有许多针对不同方针硬件的编译器,但MLIR将改动这种局势,它不仅能够支撑代码的可重用性,并且还答应你编写编译器自定义的底层组件。一起,它还答应研讨人员运用机器学习来优化初级算法:

            尽管MLIR是机器学习的编译器,但咱们也看到它能够将机器学习的技能运用到编译器自身!这一点十分重要,由于工程师开发数值核算库的速度跟不上机器学习模型或硬件多元化的速度。

            幻想一下,咱们能够运用深度学习来优化处理数据的底层内存切片算法(类似于Halide正在努力完成的使命)。并且,这仅仅一个初步,还有其他机器学习的创造性运用也能够在编译器中运用!



            总结


            假如你正在研讨深度学习,那么我主张你开端学习Swift言语。与Python比较,Swift具有多方面的优势。Google正在大力出资,让Swift成为TensorFlow多层根底设施的要害组成部分,并且Swift很或许成为深度学习的言语。 因而,先下手为强,尽早开端学习Swift吧。


            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP