准备学习AI的你,知不知道选择哪种编程语言合适呢?以下列举的五种编程语言,被认为是最适合用来学习AI。大家可以参考一下。




1. PYTHON
第一名毫无疑问是 Python。尽管 Python 有些特性令人不爽(whitespace、Python 2.x 和 Python 3.x
之间的巨大差异、五种不同的包机制都在不同程度上有缺陷)但如果你正在从事 AI 工作,你几乎肯定会在某些时候用到 Python。

Python 中可用库的数量是其他语言所无法企及的。NumPy
<https://link.zhihu.com/?target=http%3A//www.numpy.org/>
已经变得如此普遍,以至于几乎成为了张量运算的标准 API,Pandas
<https://link.zhihu.com/?target=https%3A//pandas.pydata.org/> 将 R 的强大而灵活的数据帧带入
Python。对于自然语言处理(NLP),您可以使用久负盛名的NLTK
<https://link.zhihu.com/?target=https%3A//www.nltk.org/> 和快如闪电的 SpaCy
<https://link.zhihu.com/?target=https%3A//spacy.io/>。对于机器学习,有经过实战检验的
Scikit-learn <https://link.zhihu.com/?target=http%3A//scikit-learn.org/stable/>
。当谈到深度学习时,当前所有的库(TensorFlow
<https://link.zhihu.com/?target=https%3A//www.tensorflow.org/>,PyTorch
<https://link.zhihu.com/?target=http%3A//pytorch.org/>,Chainer
<https://link.zhihu.com/?target=https%3A//chainer.org/>,Apache MXNet
<https://link.zhihu.com/?target=https%3A//mxnet.apache.org/api/python/index.html>
,Theano
<https://link.zhihu.com/?target=http%3A//deeplearning.net/software/theano/>
等)都是在 Python 上首先实现的项目。


<https://www.liveedu.tv/andreybu/REaxr-machine-learning-model-python-sklearn-kera/oPGdP-machine-learning-model-python-sklearn-kera/>

(在LiveEdu上,一位德国的AI开发者教大家如何使用Python开发两个简单的机器学习模型)





Python 是人工智能研究的前沿语言,这是拥有最多机器学习和深度学习框架的语言,也是 AI 研究者几乎都掌握的语言。由于这些原因,尽管笔者每天都要咒骂一次
whitespace 问题,Python 仍然是人工智能编程语言之王,您没法绕过它。


2. JAVA 和相关语言

JVM 系列语言(Java,Scala,Kotlin,Clojure 等)也是 AI 应用开发的绝佳选择。无论是自然语言处理(CoreNLP
<https://link.zhihu.com/?target=https%3A//stanfordnlp.github.io/CoreNLP/>)、张量运算(
ND4J <https://link.zhihu.com/?target=https%3A//nd4j.org/>)还是完整的 GPU 加速深度学习堆栈(
DL4J <https://link.zhihu.com/?target=https%3A//deeplearning4j.org/>
),您都可以使用大量的库来管理流水线的各个部分。另外,您还可以轻松访问Apache Spark
<https://link.zhihu.com/?target=https%3A//spark.apache.org/> 和 Apache Hadoop
<https://link.zhihu.com/?target=https%3A//hadoop.apache.org/> 等大数据平台。


Java 是大多数企业的通用语言,在 Java 8 和 Java 9 中提供了新的语言结构,这使得编写 Java
代码的体验不再像我们过去所记得的那样糟糕。使用 Java 编写人工智能应用可能会让人觉得无聊,但它确实能完成工作,并且您可以使用所有现成的 Java
基础架构来开发、部署和监视。


3. C/C++


在开发 AI 应用时,C / C ++ 不太可能成为您的首选,但如果您在嵌入式环境中工作,并且无法承受 Java 虚拟机或 Python 解释器的开销,那么
C / C ++ 就是最好的解决方案。当你需要榨干系统的每一滴性能时,你就得面对可怕的指针世界。






幸运的是,现代 C / C ++ 写起来体验还不错(实话实说!)。您可以从下列方法中选择一个最适合的:您可以一头扎进堆栈底部,使用 CUDA
<https://link.zhihu.com/?target=https%3A//developer.nvidia.com/cuda-zone>
等库来编写自己的代码,这些代码将直接在 GPU 上运行;您也可以使用 TensorFlow 或 Caffe 以访问灵活的高级
API。后者还允许您导入数据科学家用 Python 写的模型,然后以 C / C ++ 级别的速度在生产环境中运行它们。




在未来一年中,请密切留意 Rust <https://link.zhihu.com/?target=https%3A//www.rust-lang.org/>
在 AI 领域的一些动作。结合 C / C ++ 级别的速度与类型和数据安全性,Rust 是实现产品级性能却不会造成安全问题的最佳选择。并且它现在已经可以与
TensorFlow 绑定
<https://link.zhihu.com/?target=https%3A//github.com/tensorflow/rust>了。


4. JAVASCRIPT
蛤?!JavaScript?我没听错吧?其实,谷歌最近发布了 TensorFlow.js
<https://link.zhihu.com/?target=https%3A//js.tensorflow.org/>,这是一个 WebGL
加速库,允许您在 Web 浏览器中训练和运行机器学习模型。它还包括Keras API
<https://link.zhihu.com/?target=https%3A//keras.io/> 以及加载和使用在常规 TensorFlow
中训练过的模型的功能。这可能会吸引大量的 JS 开发者涌入 AI 领域。虽然 JavaScript
目前能够访问的机器学习库与其他语言相比有所局限,但在不久的将来,开发者在网页中添加神经网络就和添加 React 组件或 CSS
属性一样简单。这听上去既强大又恐怖。

 

TensorFlow.js 仍处于早期阶段。目前它可在浏览器中运行,但不适用于 Node.js。它还没有实现完整的 TensorFlow
API。不过,我预计到 2018 年底,这两个问题都将基本得到解决,并且JavaScript 将在不久之后大举进军 AI 界。



5. R
R <https://link.zhihu.com/?target=https%3A//www.r-project.org/>
在这份榜单中排名最末,并且看上去将会越来越没落。R 是数据科学家喜欢的语言。但是,其他程序员在第一次接触 R
时会感到有些困惑,因为它采用了以数据帧为中心的方法。如果您有一组专门的 R 开发者,那么将 R 与TensorFlow
<https://link.zhihu.com/?target=https%3A//www.tensorflow.org/>、Keras
<https://link.zhihu.com/?target=https%3A//keras.io/> 或 H2O
<https://link.zhihu.com/?target=https%3A//www.h2o.ai/>
搭配使用,进行研究、原型设计和实验是有意义的。但基于性能和操作方面的考虑,我不愿意推荐将 R 用于生产。虽然您可以写出能在生产服务器上部署的高性能 R
代码,但将这种用 R 语言编写的原型重新编码为 Java 或 Python 肯定会更容易。




本文为转载,内容有删减,原文出处:《AI 开发,究竟哪种语言强?》 <https://zhuanlan.zhihu.com/p/36716032>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信