Julia vs Python:哪种编程语言会是2019年机器学习界的No 1?
Julia最近迎来了1.0版本,其背后的开发者现在致力于让它成为机器学习领域的首选语言。
帮助实现这个目标的是Flux,这是一种面向Julia的机器学习软件库,旨在使机器学习代码更易于编写、简化训练过程,并且在GPU和谷歌的张量处理单元(TPU)之类的硬件加速器上提供与竞争性框架相比明显的性能优势。
如今,Python和R两大语言通常在机器学习领域占主导地位,就开发人员当中的人气指数而言,Python仍然是增长速度最快的编程语言,这在很大程度上取决于它拥有强大的机器学习框架和库。相比之下,只有比较少的开发人员使用刚刚兴起的Julia。
话虽如此,Julia背后的团队表示,他们开发的这种语言非常适合构建可微分算法,可微分算法是指数据驱动的过程代码,可用于构建机器学习中所使用的神经网络。
Julia团队在一篇博文中写道:“我们需要一种语言来编写可微分算法,而Flux助力Julia成为这种语言。”
“Julia是针对数学和数值计算从头开始设计的,异常适合表达机器学习算法。与此同时,它融合了编译器方面的现代设计和新颖想法,因而更容易满足先进机器学习的高性能要求。”
据博文声称,Flux库使用各种面向机器学习的工具扩展了Julia的编译器,支持在性能与开发人员的控制之间取得更好平衡的一级梯度、面向GPU的即时CUDA内核编译、训练期间减少开销的自动批量处理以及便于在谷歌TPU上运行的优化。
该团队表示,Julia连同Flux以及即将推出的可微分编程语言Myia和最近的Swift for Tensorflow,可能很快就会挑战传统的机器学习框架和方法。
该团队写道:“我们认为,机器学习的未来在于语言和编译器技术,尤其在于扩展新旧语言以满足机器学习研究的高要求。”他们补充道,“支持微分、矢量化和异种硬件的”语言将“推动科学领域的诸多进步。”
Julia团队称:“这些下一代工具(Myia、Swift/TF和Flux)想成为与现有的对应框架(TensorFlow、PyTorch和Knet)一样适用于生产环境还有一段路要走。”
“但如果你在机器学习取得新的突破,它们可能是你最好的选择。试用一下它们,看看机器学习的未来是什么样子。”
今年早些时候Julia迎来版本1.0后,这种语言的用户们大体看好它的进展情况,不过一些人仍对其错误处理和说明文档毫无帮助的现状感到担忧。