开发人员亲自上场:Julia语言搞机器学习和Python比,哪个好用?
2022 年,你会选择哪种编程语言呢?
前几年就流传着这样一种说法:Julia会替代 Python,成为新的最受欢迎的编程语言之一。我们暂且对这种说法持观望态度,但作为科学计算方面的强大工具,Julia优势已然显现,这意味着程序员的选择又多了一种。
在数据科学、人工智能等领域,仔细对比Julia和 Python,我们会发现:相同的任务,只要 Python 能实现的的,Julia都可以做,而且效率高得多,语法也简洁优雅,只是在传播度上,名气还不如 Python。
近日,reddit 上的一则热帖引来广大网友的讨论,这个帖子提到,最近,一些Julia语言包的开发人员讨论了Julia中 ML 的当前状态,并将其状态与 Python ML 生态系统进行了比较。
原贴地址:
https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of/
来自乌得勒支大学的 JordiBolibar 认为,「Julia确实在机器学习方面拥有巨大的潜力,但它目前的状态有点喜忧参半。更具体地说,我在 SciML 中坚持使用Julia的主要原因是,DifferentialEquations.jl 库工作得非常好,但在 Python 中没有发现任何类似的东西。然而,对于我的研究来说,真正痛苦的是 AD 部分。自从我开始使用Julia,我在 Zygote 中遇到了两个错误,这使我的工作速度减慢了几个月。但我仍然认为Julia是 SciML 的最佳选择,但这些库(及其文档)应该优化的更加用户友好。」
网友 @jgreener64 表示:「Julia中的 ML 在某些领域应用非常强大,Julia一切皆有可能。Julia面临的问题是:Julia中的 ML 需要大量现有知识或大量时间搜索 / 反复试验。在个人层面上,我目前正在用Julia开发新颖的可微分算法。」
除了网友的热烈讨论外,Julia软件包开发人员 Christopher Rackauckas 围绕以下 7 个问题,解答了网友比较关心的内容。Rackauckas 是 MIT 和马里兰大学的数学家和药理学家,主要用Julia进行编程。Rackauckas 为Julia、数学和随机生物学开了专门博客,来介绍相关内容,并且 Rackauckas 在Julia中开发了一些库,包括(但不限于)DifferentialEquations.jl 和 Pumas。
Christopher Rackauckas
问题包括:
今天Julia中的 ML 在哪些地方真正大放异彩?在不久的将来该生态系统在哪些方面优于其他流行的 ML 框架(例如 PyTorch、Flax 等),为什么?
目前Julia的 ML 生态系统在功能或性能方面存在哪些缺点?Julia在这些领域变得具有竞争力的时间节点在哪?
Julia的标准 ML 包(例如深度学习) 在性能方面与流行的替代方案相比如何(更快、更慢、相同数量级)?
有没有重要的Julia实验,可以针对流行的 ML 替代方案进行基准测试?
如果一家公司或机构正在考虑创建职位来为Julia的 ML 生态系统做出贡献,有没有最佳案例?为什么他们应该这样做?哪些贡献最有影响力?
为什么与其他框架合作的独立开发人员应该考虑为Julia的 ML 生态系统做出贡献?
对于某些特定任务,Julia开发人员倾向于使用哪些软件包?Julia开发人员希望添加目前不存在的哪些内容?
下文中我们挑选了几个大家比较关心的问题进行报道:
问题 3:Julia在「标准 ML」中的表现如何?
Julia的内核速度很好:在 CPU 上,我们做得非常好,在 GPU 上,每个人都只是调用相同的 cudnn 等;Julia的 AD 速度也很好。不过 Zygote 可能会有一些开销,但与 Jax/PyTorch/TensorFlow相比,Zygote 在大多数情况下速度是很快的。具体来说,PyTorch 开销要高得多,在标准 ML 工作流程中甚至无法测量。一个足够大的矩阵乘法会解决分配问题或其他 O(n) 问题;Julia不融合内核,因此在大多数基准测试中,如果用户查看它,就会发现它没有融合 conv 或 RNN cudnn 调用。
问题 4:我们应该跟踪哪些重要的实验和基准?
XLA 的分布式调度器非常好。当我们考虑扩展时,我们应该忽略 PyTorch,去考虑 DaggerFlux 与TensorFlow/Jax。XLA 有更多的灵活性来改变操作,所以我认为 XLA 才是赢家,我们需要使用 e-graphs 技巧来匹配它。另一件需要注意的事情就是「自动微分中缺少中间部分」,这种情况还需要解决。
问题 7:有什么推荐的软件包?
我倾向于在需要时使用 Flux,但大家还是尽量使用 DiffEqFlux。就现有内核而言,Flux 是最完整的,但它的风格让我感到厌烦。我希望有一个 Flux 不使用隐式参数,而是使用显式参数。我希望这些参数由 ComponentArrays 表示。
以上是开发人员亲自上场:Julia语言搞机器学习和Python比,哪个好用?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

这个AI辅助编程工具在这个AI迅速发展的阶段,挖掘出了一大批好用的AI辅助编程工具。AI辅助编程工具能够提高开发效率、改善代码质量、降低bug率,是现代软件开发过程中的重要助手。今天大姚给大家分享4款AI辅助编程工具(并且都支持C#语言),希望对大家有所帮助。https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI编码助手,可帮助你更快、更省力地编写代码,从而将更多精力集中在问题解决和协作上。Git

如果您需要远程编程任何设备,这篇文章会给您带来帮助。我们将分享编程任何设备的顶级GE通用远程代码。通用电气的遥控器是什么?GEUniversalRemote是一款遥控器,可用于控制多个设备,如智能电视、LG、Vizio、索尼、蓝光、DVD、DVR、Roku、AppleTV、流媒体播放器等。GEUniversal遥控器有各种型号,具有不同的功能和功能。GEUniversalRemote最多可以控制四台设备。顶级通用遥控器代码,可在任何设备上编程GE遥控器配备一组代码,使其能够与不同设备相配合。您可

2022年3月3日,距世界首个AI程序员Devin诞生不足一个月,普林斯顿大学的NLP团队开发了一个开源AI程序员SWE-agent。它利用GPT-4模型在GitHub存储库中自动解决问题。SWE-agent在SWE-bench测试集上的表现与Devin相似,平均耗时93秒,解决了12.29%的问题。SWE-agent通过与专用终端交互,可以打开、搜索文件内容,使用自动语法检查、编辑特定行,以及编写和执行测试。(注:以上内容为原内容微调,但保留了原文中的关键信息,未超过指定字数限制。)SWE-A

Go语言开发移动应用程序教程随着移动应用市场的不断蓬勃发展,越来越多的开发者开始探索如何利用Go语言开发移动应用程序。作为一种简洁高效的编程语言,Go语言在移动应用开发中也展现出了强大的潜力。本文将详细介绍如何利用Go语言开发移动应用程序,并附上具体的代码示例,帮助读者快速入门并开始开发自己的移动应用。一、准备工作在开始之前,我们需要准备好开发环境和工具。首

崩坏星穹铁道波提欧是游戏2.2版本中上线的一个五星角色,想必许多玩家都十分好奇崩坏星穹铁道波提欧技能是什么,那么接下来小编会为大家带来崩坏星穹铁道波提欧技能介绍,快来一起看看吧。崩坏星穹铁道波提欧技能是什么1、普攻:正常的普通攻击,没有任何效果。2、战技:对自己和指定的敌人发动绝命对峙,维持两个回合。在绝命对峙的情况下,敌人将进入嘲讽状态。波提欧不能使用任何战技,他的普攻蹄铁裂颅强化成了击锤连弩。当敌人/波提欧被处于绝命对峙时受到对方攻击,将获得30%/15%的伤害提升。如果场上没有可攻击的处于

《了解VSCode:这款工具到底是用来干什么的?》作为一个程序员,无论是初学者还是资深开发者,都离不开代码编辑工具的使用。在众多编辑工具中,VisualStudioCode(简称VSCode)作为一款开源、轻量级、强大的代码编辑器备受开发者欢迎。那么,VSCode到底是用来干什么的?本文将深入探讨VSCode的功能和用途,并提供具体的代码示例,以帮助读者

自2023年3月14日开始,ChatGLM-6B以来,GLM系列模型受到了广泛的关注和认可。特别是在ChatGLM3-6B开源之后,开发者对智谱AI推出的第四代模型充满了期待。而这一期待,随着GLM-4-9B的发布,终于得到了充分的满足。GLM-4-9B的诞生为了赋予小模型(10B及以下)更加强大的能力,GLM技术团队经过近半年的探索,推出了这一全新的第四代GLM系列开源模型:GLM-4-9B。这一模型在保证精度的同时,大幅度压缩了模型大小,具有更快的推理速度和更高的效率。GLM技术团队的探索没

在Linux操作系统中处理文件需要使用各种命令和技术,使开发人员能够高效地创建和执行文件、代码、程序、脚本和其他东西。在Linux环境中,扩展名为”.a”的文件作为静态库具有重要的重要性。这些库在软件开发中发挥着重要作用,允许开发人员有效地管理和共享多个程序的公共功能。对于Linux环境中的有效软件开发,了解如何创建和运行“.a”文件至关重要。本文将介绍如何全面安装和配置Linux“.a”文件,让我们一起探索Linux“.a”文件的定义、用途、结构,以及创建和执行它的方法。什么是L
