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

    文章

    125

    浏览量

    24687
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89586
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123907

原文标题:为什么说Swift将接任Python成为深度学习下一任“掌门”?

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Swift Navigation与导远科技合作打造高精度卫星定位解决方案

    2025 年 11 月 4 日,导远科技与面向大众市场的精准定位技术全球领导者 Swift Navigation 共同宣布, 导远 NAV3120 高精度 GNSS 定位模组与 Swift
    的头像 发表于 11-06 16:07 440次阅读

    政策加码加氢站,背后有哪些考量与机遇?

    加氢站是兑现氢能源价值的出口,在整个氢能源供应体系中,加氢站是链接上游制备、运输与终端应用的关键节点,2025 年上半年,从顶层设计到地方实践,众多支持氢能产业的政策红利持续释放,其中涉及加氢站建设、运营等方面的支持力度更胜以往,政策加码加氢站
    的头像 发表于 09-04 14:59 365次阅读
    政策加码加氢站,<b class='flag-5'>背后有</b>哪些考量与机遇?

    深度解析:SiLM1040SCA-DG-支持CAN FD与强大保护的±65V故障保护CAN收发器

    (1.8V-5.5V)、强大的±65V总线故障保护等关键特性,以及完备的诊断与保护功能(欠压、过温、TXD超时)。其优化的未上电行为和热插拔支持进一步提升了系统的稳健性。#SiLM1040SCA-DG #SiLM1040 #CAN 收发器 #高速控制器局域网收发器
    发表于 07-10 09:07

    通信小能手,Modbus TCP转Profibus DP网关控变送器与PLC通讯方案

    通信小能手,Modbus TCP转Profibus DP网关控变送器与PLC通讯方案
    的头像 发表于 07-02 14:36 447次阅读
    通信小能手,Modbus TCP转Profibus DP网关<b class='flag-5'>硬</b>控变送器与PLC通讯方案

    Mpp支持RK3576么

    想问下,https://github.com/rockchip-linux/mpp这里面支持RK3576么,看介绍没有提到说支持RK3576 目前是买了个rk3576的机顶盒,搭载了安卓14,想做安卓视频解。
    发表于 06-13 15:35

    电机引线螺栓钎焊工艺研究

    通过不同加热方式对电机引线螺栓钎焊的工艺试验进行比较,结果表明,采用感应钎焊的产品,质量稳定可靠,各项性能指标合格,能满足产品要求,为行业应用提供参考。 高压三相异步电动机引线螺栓接头的焊接,采用
    发表于 05-14 16:34

    登顶!沃飞长空获评成都科技扑克牌“大王”称号

    近日,作为中西部地区一年一度的科技盛会,由成都科技科技联盟、雨前顾问主办的“2025成都科技企业扑克牌”榜单公布,沃飞长空获评“大王”称号。此榜单聚焦“锻造科技‘镇园之宝’”,
    的头像 发表于 04-24 15:23 502次阅读
    登顶!沃飞长空获评成都<b class='flag-5'>硬</b>科技扑克牌“大王”称号

    芯盛智能荣登2025成都科技企业扑克牌榜单

    近日,以“锻造科技‘镇园之宝’”为主题的“2025成都科技年会”在蓉城盛大启幕。芯盛智能科技有限公司(以下简称“芯盛智能”)凭借在存储芯片领域的硬核实力与创新突破,荣登“2025成都科技企业扑克牌”榜单,并受邀出席颁奖典礼
    的头像 发表于 04-21 11:29 872次阅读

    小米AR眼镜背后有多少技术难点

    在前不久结束的小米发布会上,众多米粉期待已久的AR眼镜可以说是“千呼万唤未出来”,这一“缺席”也引发了行业内外的广泛关注与讨论。事实上,这也恰恰说明AR眼镜的研发与量产绝非易事,其背后涉及的技术门槛极高,尤其是光学、材料、整机设计与软件算法等核心技术领域。
    的头像 发表于 03-10 11:47 1341次阅读

    IAR无法跳转定义,系统库文件文件名后有[RO]是怎么回事?

    IAR无法跳转定义,系统库文件文件名后有[RO]
    发表于 03-10 07:36

    DLP6500开发板链接时自动跳转到stand模式,无法控制dmd进行相关操作怎么解决?

    DLP6500开发板链接时自动跳转到stand模式,手动切换为normal模式后又跳回stand模式,无法对板子进行操作点击软件按钮reset也无法解决。这个该怎么解决。我看板子背后有个reset建,是不是要短接进行一系列操作才可以使得软件正常控制dmd?
    发表于 02-25 07:13

    华大北斗:科技实力彰显,粤港协同创新引领北斗产业发展

    深圳华大北斗科技股份有限公司,作为卫星导航定位芯片级解决方案的领先提供商,近期在科技创新和产业发展方面取得了显著成就,连续获得业界重要奖项,彰显了其强大科技实力和粤港协同创新的成果。 首先,在
    的头像 发表于 02-11 23:37 637次阅读

    苹果开源Swift Build,强化开发者生态建设

    Swift Build作为Xcode开发环境的核心组件,承担着构建、测试和部署应用的重要职责。通过将其开源,苹果公司期望为开发者提供更加灵活、强大的工具支持,从而进一步激发开发者的创新活力和创造力。 此次开源行动,无疑将吸引
    的头像 发表于 02-05 15:03 769次阅读

    背景抑制光电开关的设计及应用

    和目标物体特性。 ·信号采集与分析 :接收电路中的光敏元件将反射光信号转换为电信号后,XD08M3232 单片机通过其模拟输入接口按一定时间间隔采集这些信号,并存储在数组或缓冲区中。然后运用背景抑制
    发表于 01-11 13:43

    TPS54372EVM-215 3-Amp SWIFT调节器评估模块

    电子发烧友网站提供《TPS54372EVM-215 3-Amp SWIFT调节器评估模块.pdf》资料免费下载
    发表于 12-21 09:57 0次下载
    TPS54372EVM-215 3-Amp <b class='flag-5'>SWIFT</b>调节器评估模块