当前位置: 首页 > 科技观察

技术趋势:2019年AI开发的5种优秀编程语言

时间:2023-03-21 18:24:34 科技观察

指南AI(人工智能)为应用程序开发者打开了一个充满无限可能的世界。通过利用机器学习或深度学习,您可以生成更好的人物角色、性格特征和适当的建议,或者合并更智能的搜索、语音界面或智能帮助,或者以其他方式改进您的应用程序。您甚至可以构建能够看到、听到和响应的应用程序。您应该学习哪种编程语言来探索AI的深度?当然,您需要一种具有许多优秀的机器学习和深度学习库的语言。它还应该具有良好的运行时性能、良好的工具支持、庞大的程序员社区以及健康的支持包生态系统。那仍然有很多不错的选择。以下是我为AI开发挑选的五种最佳编程语言,以及三项荣誉奖。其中一些语言正在崛起,而另一些则似乎在走下坡路。几个月后再回来,您可能会发现这些排名发生了变化。那么,您应该为机器学习或深度学习项目选择哪种编程语言?为您推荐五种最佳编程语言选择。一、AI编程的首选1、Python在Python中排名第一。怎么可能是别的,真的吗?虽然Python有一些令人抓狂的事情——空格、Python2.x和Python3.x之间的主要分歧、五种不同的打包系统,但它们都不是问题——如果你从事AI工作,你几乎肯定会使用Python在某些时候。Python中可用的库几乎是其他语言无法比拟的。NumPy已经变得无处不在,几乎成为张量操作的标准API,而Pandas将R强大而灵活的数据帧带到了Python。对于自然语言处理(NLP),您拥有久负盛名的NLTK和超快的SpaCy。对于机器学习,有久经考验的Scikit-learn。在深度学习方面,所有当前的库(TensorFlow、PyTorch、Chainer、ApacheMXNet、Theano等)实际上都是Python优先的项目。如果您在arXiv上阅读前沿的深度学习研究,您几乎肯定会找到Python的源代码。然后是Python生态系统的其他部分。虽然IPython已成为JupyterNotebook而不是以Python为中心,但您仍然会发现大多数JupyterNotebook用户以及大多数在线共享的笔记本都使用Python。没有其他办法了。Python是AI研究前沿的语言,是你会发现最多机器学习和深度学习框架的语言,也是AI世界中几乎每个人都在使用的语言。由于这些原因,Python是AI编程语言中的第一名,尽管你的编码编写者每天至少会诅咒一次空白问题。2、Java和它的朋友JVM语言家族(Java、Scala、Kotlin、Clojure等)也是AI应用开发的绝佳选择。无论是自然语言处理(CoreNLP)、张量运算(ND4J),还是完整的GPU加速深度学习堆栈(DL4J),您都可以使用丰富的库来管理所有部分。此外,您还可以轻松访问ApacheSpark和ApacheHadoop等大数据平台。Java是大多数企业的通用语言,随着Java8和Java9中可用的新语言结构,编写Java代码不再是我们许多人记忆中的糟糕经历。用Java编写AI应用程序可能很无聊,但它可以完成工作——您可以使用所有现有的Java基础设施进行开发、部署和监控。3.C/C++C/C++不太可能成为你开发AI应用程序的首选,但如果你在嵌入式环境中工作,无法承受Java虚拟机或Python解释器的开销,那么C/C++就是解决方案.当您需要系统发挥最后一点性能时,您需要回到可怕的指针世界。值得庆幸的是,现代C/C++编写起来仍然是一种乐趣(老实说!)。您可以选择如何执行此操作-您可以深入到堆栈底部并使用CUDA等库编写直接在GPU上运行的代码,或者您可以使用TensorFlow或Caffe访问灵活的高级API。后者还允许您导入数据科学家可能使用Python构建的模型,然后以C/C++提供的所有速度在生产中运行它们。请密切关注Rust来年在该领域的表现。将C/C++的速度与类型和数据安全性相结合,Rust是无安全问题的生产性能的绝佳选择。对于Rust,TensorFlow绑定已经可用。4.JavaScriptJavaScript?他们的意思是什么?冷静下来,听我说完-Google最近发布了TensorFlow.js,这是一个WebGL加速库,可让您在Web浏览器中训练和运行机器学习模型。它还包括KerasAPI以及加载和使用在常规TensorFlow中训练的模型的能力。这可能会吸引大量开发人员涌入AI领域。虽然JavaScript目前无法像此处列出的其他语言那样访问机器学习库,但很快开发人员将以与添加React组件或CSS属性大致相同的方式将神经网络添加到他们的网页中。的确,赋权是可怕的。TensorFlow.js仍处于早期阶段。目前它在浏览器中有效,但在Node.js中无效。它尚未实现完整的TensorFlowAPI。然而,我预计这两个问题都将在2018年底前得到解决,此后不久JavaScript将入侵AI。5、RR进入前五垫底,呈下降趋势。R是数据科学家喜爱的语言。然而,由于其以数据框为中心的方法,其他程序员在第一次遇到R时可能会觉得有点困惑。如果您有专门的R开发人员组,那么使用与TensorFlow、Keras或H2O的集成来进行研究、原型设计和实验是有意义的,但由于性能和操作问题,我不愿意推荐R用于生产。虽然您可以编写可部署在生产服务器上的高性能R代码,但几乎可以肯定的是,采用该R原型并用Java或Python重新编写它会更容易。2.其他AI编程当然,Python、Java、C/C++、JavaScript、R并不是唯一可以用于AI编程的语言。让我们来看看其他三种没有完全进入前五名的编程语言——两种上涨,一种下跌。1.Lua几年前,Lua在人工智能领域处于领先地位。使用Torch框架,Lua是最流行的深度学习开发语言之一,你仍然会在GitHub上看到很多历史上的深度学习工作,在Lua/Torch中定义模型。我认为熟悉Lua以研究和查看人们以前的工作是个好主意。但随着TensorFlow和PyTorch等框架的出现,Lua的使用急剧下降。2.JuliaJulia是一种专注于数值计算的高性能编程语言,这使其成为“数学密集型”AI世界的理想选择。虽然现在不是那种流行的语言选择,但像TensorFlow.jl和Mocha(深受Caffe影响)这样的包装器提供了良好的深度学习支持。如果您不介意目前还没有一个庞大的生态系统,但希望从它专注于使高性能计算变得简单和快速的过程中受益,这是一个不错的选择。3.Swift在我们即将推出时,LLVM编译器和Swift编程语言的创建者ChrisLattner宣布了SwiftforTensorFlow,该项目承诺提供一种编译语言,结合了Python提供的易用性和速度以及静态类型检查。作为奖励,SwiftforTensorFlow还允许您导入Python库(例如NumPy),并像使用任何其他库一样在Swift代码中使用它们。目前,SwiftforTensorflow目前处于开发的早期阶段,但能够编写现代编程结构并获得速度和安全的编译时保证确实是一个诱人的前景。即使你还没有出去学过Swift,我也建议你留意这个项目。结论未来已来。作为扎根IT行业的你,你准备好迎接2019了吗?立足现在,面向未来,投身AI世界,创造你想要的美好未来!