技术趋势:2019,人工智能开发的5种最佳编程语言

栏目: Python · 发布时间: 5年前

内容简介:AI(人工智能)为应用程序开发人员打开了一个充满可能性的世界。 通过利用机器学习或深度学习,您可以生成更好的用户画像、个性特征和适当推荐,或者包含更智能的搜索、语音接口或智能辅助,或者以其他方式改进您的应用程序。 您甚至可以构建能看、会听并响应的应用程序。你应该学习哪种编程语言来探究AI的深度? 当然,您需要一种具有许多良好机器学习和深度学习库的语言。 它还应具有良好的运行时性能、良好的工具支持、大型​​程序员社区以及健康的支持包生态系统。 这仍然能留下很多好的选择。

技术趋势:2019,人工智能开发的5种最佳编程语言

导引

AI(人工智能)为应用程序开发人员打开了一个充满可能性的世界。 通过利用机器学习或深度学习,您可以生成更好的用户画像、个性特征和适当推荐,或者包含更智能的搜索、语音接口或智能辅助,或者以其他方式改进您的应用程序。 您甚至可以构建能看、会听并响应的应用程序。

你应该学习哪种编程语言来探究AI的深度? 当然,您需要一种具有许多良好机器学习和深度学习库的语言。 它还应具有良好的运行时性能、良好的 工具 支持、大型​​程序员社区以及健康的支持包生态系统。 这仍然能留下很多好的选择。

以下是我对人工智能开发的五种最佳编程语言的选择,以及三项荣誉提及。 其中一些语言正在崛起,而其他语言似乎正在下滑。 几个月后回来,没准你可能会发现这些排名发生了变化。

那么,应该选择哪种编程语言进行机器学习或深度学习项目? 给你 推荐五种最佳 的编程语言选择。

一、AI编程首选

1.Python

排名第一的是Python。 怎么可能是别的,真的吗? 虽然有一些关于 Python 的令人抓狂的事情 ——空格、Python 2.x和Python 3.x之间的重大分裂、五种不同的打包系统,它们都将不是问题——如果你正在进行AI工作,你几乎肯定会 在某些时候使用Python。

Python中提供的库在其他语言中几乎是无与伦比的。 NumPy已经变得如此普遍,它几乎是张量操作的标准API,而Pandas将R强大而灵活的数据帧带入Python。 对于自然语言处理(NLP),您拥有令人尊敬的NLTK和极其快速的SpaCy。 对于机器学习,有经过实战考验的Scikit-learn。 当涉及到深度学习时,所有当前的库(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano等)都是有效的Python优先项目。

如果您正在阅读关于arXiv的尖端深度学习研究,那么几乎可以肯定您会在Python中找到源代码。 然后是Python生态系统的其他部分。虽然IPython已成为Jupyter Notebook,而不是以Python为中心,但您仍会发现大多数Jupyter Notebook用户以及大多数在线共享的笔记本都使用Python。

没法绕过它。 Python是人工智能研究的最前沿语言,是你能找到最多的机器学习和深度学习框架的语言,也是AI世界中几乎所有人都会说的。 出于这些原因,Python是人工智能编程语言中的第一个,尽管你的编码作者每天至少会诅咒一次空白问题。

2.Java和他的朋友

JVM家族系列语言(Java,Scala,Kotlin,Clojure等)也是AI应用程序开发的绝佳选择。 无论是自然语言处理(CoreNLP)、张量操作(ND4J)还是完整的GPU加速深度学习堆栈(DL4J),您都可以使用丰富的库来管理所有部分。此外,您还可以轻松访问Apache Spark和Apache Hadoop等大数据平台。

Java是大多数企业的通用语言,Java 8和 Java 9中提供了新的语言结构,编写Java代码并不是我们许多人记忆中的可憎体验。 用Java编写AI应用程序可能会让人觉得无聊,但它可以完成工作 - 您可以使用所有现有的Java基础架构进行开发、部署和监视。

3. C/C++

在开发AI应用程序时,C/C++不太可能是您的首选,但如果您在嵌入式环境中工作,并且无法负担Java虚拟机或Python解释器的开销,那么C/C++就是解决之道。当你需要从系统中获取最后一点性能时,你需要回到可怕的指针世界。

值得庆幸的是,现代的C/C++写起来还是很愉快的(诚实之言!)。 具体方法你是有的选择的——您可以深入了解堆栈底部,使用CUDA等库来编写直接在GPU上运行的代码,也可以使用TensorFlow或Caffe来访问灵活的高级API。 后者还允许您导入数据科学家可能使用Python构建的模型,然后以C/C++提供的所有速度在生产中运行它们。

请留意Rust在未来一年中在这个领域所做的事情。 结合C/C++的速度与类型和数据安全性,Rust是实现生产性能的绝佳选择,而不会产生安全问题。 并且对Rust来说,TensorFlow绑定已经可用了。

4.JavaScript

JavaScript? 到底几个意思? 淡定,听我说说——Google最近发布了TensorFlow.js,这是一个WebGL加速库,允许您在Web浏览器中训练和运行机器学习模型。 它还包括Keras API以及加载和使用在常规TensorFlow中训练的模型的能力。 这可能会吸引大量开发人员涌入AI领域。 虽然JavaScript目前没有与此处列出的其他语言相同的机器学习库访问权限,但很快开发人员将在他们的网页中添加神经网络,与添加React组件或CSS属性几乎相同。真是即赋予权力有让人震恐。

TensorFlow.js仍处于早期阶段。 目前它在浏览器中有用,但在Node.js中不起作用。 它还没有实现完整的TensorFlow API。 但是,我预计这两个问题将在2018年底之前得到解决,此后不久JavaScript将对人工智能进行入侵。

5.R

R进入前五名的底部,并且趋势向下。 R是数据科学家喜爱的语言。 但是,由于其以数据帧为中心的方法,其他 程序员 在第一次遇到R时会发现R有点混乱。 如果你有一个专门的R开发人员小组,那么使用与TensorFlow,Keras或H2O的集成进行研究,原型设计和实验是有意义的,但由于性能和操作问题,我不愿意推荐R用于生产用途 。 虽然您可以编写可以部署在生产服务器上的高性能R代码,但是使用该R原型并使用Java或Python重新编写它几乎肯定会更容易。

二、其它AI编程

当然,Python,Java,C/C++,JavaScript和R并不是唯一可用于AI编程的语言。 让我们来看看其它三种编程语言,这些语言并没有完全进入我们的前五——二上升,一下降。

1.Lua

几年前,Lua在人工智能领域处于领先地位。 使用Torch框架,Lua是最流行的深度学习开发语言之一,你仍然会在GitHub上遇到很多历史深度学习工作,用Lua/Torch定义模型。 我认为,为了研究和查看人们以前的工作,熟悉 Lua 是个好主意。 但随着TensorFlow和PyTorch这样的框架的到来,Lua的使用已大幅减少。

2.Julia

Julia是一种高性能的编程语言,专注于数值计算,这使得它非常适合“数学繁重”的AI世界。 虽然现在不是那种流行的语言选择,但像TensorFlow.jl和Mocha(受Caffe影响很大)这样的包装器提供了良好的深度学习支持。 如果你不介意那里还没有一个庞大的生态系统,但是希望从其专注于使高性能计算变得容易和迅速的过程中获益,这是个不错的选择。

3.Swift

正如我们要推出的那样,LLVM编译器和Swift编程语言的创建者Chris Lattner宣布推出Swift for TensorFlow,该项目承诺将Python提供的易用性与速度和静态类型检查相结合的编译型语言。 作为奖励,Swift for TensorFlow还允许您导入Python库(如NumPy)并在Swift代码中使用它们,就像使用任何其他库一样。

现在,Swift for Tensorflow目前处于开发的早期阶段,但是能够编写现代编程结构并获得速度和安全性的编译时保证,确实是一个诱人的前景。 即使你还没出去学习Swift,我也建议你留意这个项目。

结论

未来已来,作为在IT界生根发芽的你,2019,你准备好了吧?

立足现在,面向未来,投身到AI世界,去创造你想往的美好未来吧!


以上所述就是小编给大家介绍的《技术趋势:2019,人工智能开发的5种最佳编程语言》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Stylin' with CSS

Stylin' with CSS

Wyke-Smith, Charles / 2012-10 / $ 50.84

In this completely revised edition of his bestselling Stylin' with CSS, veteran designer and programmer Charles Wyke-Smith guides you through a comprehensive overview of designing Web pages with CSS, ......一起来看看 《Stylin' with CSS》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具