则正在谷歌和苹果的共同养育下茁壮成
长,有望成长为深度学习领域一门新的主要语言。
两年之前,谷歌的一个小团队开始研究让 Swift 语言成为首个在语言层面上
一流地整合了可微分编程能力的主流语言。该项目的研究范围着实与众不同,而且
也取得了一些出色的初期研究成果,似乎离公众应用也并不很远了。
尽管如此,该项目却并未在机器学习社区引起多大反响,而且很多实践者还对此浑
然不觉。造成这种结果的主要原因之一是语言的选择。机器学习社区的很多人很大
程度上并不关心 Swift,谷歌研究它也让人们感到疑惑;因为 Swift 主要用来开
发 iOS 应用而已,在数据科学生态系统中几乎毫无存在感。
不过,事实却并非如此,只需粗略地看看谷歌这个项目,就能发现这是一个庞大且
雄心勃勃的计划,甚至足以将 Swift 确立为机器学习领域的关键成员。此外,即
使我们 Tryolabs 也主要使用 Python,但我们还是认为 Swift 是一个绝佳的选
择;也因此,我们决定写这篇文章以帮助世人了解谷歌的计划。
但在深入 Swift 以及「可微分编程」的真正含义之前,我们应该先回顾一下
当
前
的
状况
。
到目前为
止
,Python
都依
然是机器学习领域
最常被
使用的语言,谷歌也有大
量
用 Python 编写的机器学习
软件库
和
工具
。
那么
,为
什么
还要用 Swift
?
Python
有
什么问题吗?
直接说吧
,Python
太慢
了。
另
外,Python 的并
行性表
现并不
好
。
为了应对这些
缺点
,大多数机器学习项目在
运行
计
算密集型算法时
,
都会
使用用
C/C++/F
ortran
/CUDA
写的
软件库
,然
后再
使用 Python 将不同的
底
层
运算组
合到
一起。对
于
大
部
分项目而言,这种
做法其
实
效
果很
好
;但
总体概况
而言,这
会产
生
一些
问题
。我们先看看
其
中一些
问题
。
外
部二进制
文
件