基于TensorFlow的可微编程语言Tensorlang
极客时间编辑部
讲述:丁婵大小:1.37M时长:03:00
近日,亚当(Adam Bouhenguel)在 GitHub 上发布了一种基于 TensorFlow 的新型编程语言 Tensorlang,适用于更快、更强大和更易用的大规模计算网络,如深度神经网络。
需要注意的是,在早期开发阶段,Tensorlang 的代号是“Nao”(脑),因此现在仍然有一些地方还在使用“Nao”。
根据现有工具的使用经验,Tensorlang 的设计目标是解决以下需求:
用线性缩放使单个机器的本地 CPU 和 GPU 饱和的能力;
无缝扩展至机器集群;
将程序编译成本地代码的能力,该本地代码可以在主要操作系统和移动设备上快速运行;
本地支持符号微分;
易于对图误差进行 debug 和实际的堆栈跟踪;
匹配其他编程环境的执行模型,比如无延迟执行;
高产的 REPL 环境;
与现有库和模型的兼容性。
为了达到以上目的,Tensorlang 需要在 debug、维护、构建、清晰这几个方面进行改进。
谈到为什么不使用现有的 TensorFlow Python API 时,亚当解释道,TensorFlow 专门用于构建计算图,这些图比较大,并且执行需要在大量的机器上展开,其运转的部分技巧在于允许异步评估表达式。尽管现有的 TensorFlow 软件包可以提供定义这些表达式的 API,但它们不提供高级别的语法工具链,或者高产的开发环境。
而 Tensorlang 具备适合当前机器学习中数据流计算的语法,支持模板、类型推断和符号微分,因此,没有使用现有的 TensorFlow Python API。
至于直接将语言编译成 TensorFlow,则需要作出以下妥协(两种之一):
默认 Python 可并行执行,但这意味着大部分现有 Python 程序无法运行,使用 Python 的益处大打折扣。
放弃 TensorFlow 并行模型的优势,而这将大幅降低语言的灵活性和可扩展特性。
所以需要和主流编程语言有着稍微不同的语言语义。编程语法是用编程语言调用和操作一些特定概念的方法,大多数语法非常接近 GO、JavaScript 和 Python 等主流语言。而 Tensorlang 作为一种新型语言,它非常适合于构建许多当前流行的机器学习模型。
例如机器学习中的许多论文包含了将数据的转换描述为图形变换,若用主流语言描述这种变换,可能需要使用复合函数并颠倒书写顺序,这种方式阻碍了人们用更自然的方式表达这种变换。而构建一种专门化的语法意味着能够按照原来的转换关系图表达运算过程。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论