pytorch|PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?
PyTorch社区最近有一种声音:下个版本应该抛弃Python改用Julia语言。
现在就连PyTorch团队内部也会拿这个说法来开玩笑。
对这个问题,核心开发成员中的Edward Yang在论坛上作出过一些回应。
文章插图
他认为PyTorch的确越来越像Julia了,比如借鉴Julia的多重分派特性开发了Pytorch Dispatcher。
PyTorch总体的发展方向也和Julia的愿景一致,也就是同时具备拓展性、易用性和执行性能。
一方面PyTorch的底层代码后期用C++重写以获得更好的性能,另一方面functorch、fx等新功能又让用户可以直接使用Python做以前必须借助C++完成的工作。
那为什么不直接改用Julia呢?
害,其实是舍不得Python那无可替代的生态。
当初从原版Torch使用的Lua改用Python就是看中了生态这一点。这么多年过去了其他语言生态连一点可能超过Python的迹象都没有。
简而言之,Julia语言本身的特性和Python的生态他们全都要,向Julia的优点学习也是团队未来的努力方向。
文章插图
那么,Julia这种语言到底好在哪,让PyTorch开发团队都向它学习?
面向科学计算设计的语言Julia来自麻省理工CSAIL实验室,设计初衷就是想要一个既有C的速度又有Ruby的动态性、既能像Matlab一样使用数学表达式又有Python的通用性。
Julia要能像Perl一样自然地处理字符串、像R一样适用于统计,像Shell一样作为胶水语言去和其他语言交互。
要有Hadoop的并行计算能力,又不想要那些繁杂的配置。
最后做出来的Julia采用即时编译(Just In Time),速度比需要解释器的Python快得多,又没有失去交互性。
通过多重分派(Multiple Dispatch)特性来实现类型稳定又不时脚本语言的简洁灵活。
同一个函数名对不同参数类型的调用分派不同的操作,因为适合处理多种数据类型还被PyTorch给学了去。
文章插图
具体到机器学习来说,Julia执行各类算法包括矩阵运算的速度都比Python快得多。
文章插图
Julia生态里也有自己的开源深度学习框架Julia Flux。
文章插图
此外Julia还在语法上对线性代数、数据处理这些场景有额外的优化。
比如支持Unicode数学符号,数字乘以变量时候可以省略「*」,以及索引从1而不是0开始更符合人类直觉….
【 pytorch|PyTorch核心开发者灵魂发问:我们怎么越来越像Julia了?】Julia代码可以写成这样:
- 军工|中国版“英伟达”诞生,核心技术完全自研,国产替代即将崛起
- 英特尔|Intel未发布下代至强被开盖:完整64个核心、只开启56个
- CPU|电脑CPU可不能盲目选,CPU是电脑的核心,这些重点必须要懂!
- 核心技术|国内科技巨头宣布,投资1000亿搞研发,海外网友:东方雄狮已
- 英伟达|被称“中国版英伟达”,核心技术100%自研,年收入大涨超65%
- “婴儿期”的元宇宙 关注核心底层技术远比炒概念更重要
- 非核心|苹果供应链利润分配:中国供应链赚最少的钱,干最累的活
- iPhoneSE|NVIDIA新版RTX 3060 Ti曝光,连核心也变了
- RTX206012GB、RTX308012GB、RTX3070Ti16GB……NVIDI...|rtx3060ti换成ga103核心了?
- Google|WordPress 爆料核心漏洞致使数百万个网站遭受攻击