干货分享:五大最适合学习AI开发的编程语言
AI(人工智能)为应用开发者开创了一个全新的可能性。通过利用机器学习或深度学习,您可以生成更好的用户配置文件、个性化设置和推荐,或者整合更智能的搜索、语音界面或智能助手,或者以其他数种方式改进您的应用。你甚至可以构建看得懂、听得懂,并与人类互动的应用。准备学习AI的你,知不知道选择哪种编程语言合适呢?以下列举的五种编程语言,被认为是最适合用来学习AI。大家可以参考一下。
1. PYTHON
第一名毫无疑问是 Python。尽管 Python 有些特性令人不爽(whitespace、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 上首先实现的项目。
(在LiveEdu上,一位德国的AI开发者教大家如何使用Python开发两个简单的机器学习模型)
如果您正在阅读关于 arXiv 的顶尖深度学习研究,那么几乎可以肯定您会在 Python 中找到源代码。 此外,Python 生态系统中还有其他部分。虽然 IPython 已经改名为 Jupyter Notebook,看上去不再以 Python 为中心,但您仍然会发现绝大多数 Jupyter Notebook 用户以及大多数在线共享笔记本都使用 Python。
Python 是人工智能研究的前沿语言,这是拥有最多机器学习和深度学习框架的语言,也是 AI 研究者几乎都掌握的语言。由于这些原因,尽管笔者每天都要咒骂一次 whitespace 问题,Python 仍然是人工智能编程语言之王,您没法绕过它。
2. JAVA 和相关语言
JVM 系列语言(Java,Scala,Kotlin,Clojure 等)也是 AI 应用开发的绝佳选择。无论是自然语言处理(CoreNLP)、张量运算(ND4J)还是完整的 GPU 加速深度学习堆栈(DL4J),您都可以使用大量的库来管理流水线的各个部分。另外,您还可以轻松访问 Apache Spark 和 Apache Hadoop 等大数据平台。
Java 是大多数企业的通用语言,在 Java 8 和 Java 9 中提供了新的语言结构,这使得编写 Java 代码的体验不再像我们过去所记得的那样糟糕。使用 Java 编写人工智能应用可能会让人觉得无聊,但它确实能完成工作,并且您可以使用所有现成的 Java 基础架构来开发、部署和监视。
3. C/C++
在开发 AI 应用时,C / C ++ 不太可能成为您的首选,但如果您在嵌入式环境中工作,并且无法承受 Java 虚拟机或 Python 解释器的开销,那么 C / C ++ 就是最好的解决方案。当你需要榨干系统的每一滴性能时,你就得面对可怕的指针世界。
幸运的是,现代 C / C ++ 写起来体验还不错(实话实说!)。您可以从下列方法中选择一个最适合的:您可以一头扎进堆栈底部,使用 CUDA 等库来编写自己的代码,这些代码将直接在 GPU 上运行;您也可以使用 TensorFlow 或 Caffe 以访问灵活的高级 API。后者还允许您导入数据科学家用 Python 写的模型,然后以 C / C ++ 级别的速度在生产环境中运行它们。
在未来一年中,请密切留意 Rust 在 AI 领域的一些动作。结合 C / C ++ 级别的速度与类型和数据安全性,Rust 是实现产品级性能却不会造成安全问题的最佳选择。并且它现在已经可以与 TensorFlow 绑定了。
4. JAVASCRIPT
蛤?!JavaScript?我没听错吧?其实,谷歌最近发布了 TensorFlow.js,这是一个 WebGL 加速库,允许您在 Web 浏览器中训练和运行机器学习模型。它还包括 Keras API 以及加载和使用在常规 TensorFlow 中训练过的模型的功能。这可能会吸引大量的 JS 开发者涌入 AI 领域。虽然 JavaScript 目前能够访问的机器学习库与其他语言相比有所局限,但在不久的将来,开发者在网页中添加神经网络就和添加 React 组件或 CSS 属性一样简单。这听上去既强大又恐怖。
TensorFlow.js 仍处于早期阶段。目前它可在浏览器中运行,但不适用于 Node.js。它还没有实现完整的 TensorFlow API。不过,我预计到 2018 年底,这两个问题都将基本得到解决,并且JavaScript 将在不久之后大举进军 AI 界。
5. R
R 在这份榜单中排名最末,并且看上去将会越来越没落。R 是数据科学家喜欢的语言。但是,其他程序员在第一次接触 R 时会感到有些困惑,因为它采用了以数据帧为中心的方法。如果您有一组专门的 R 开发者,那么将 R 与 TensorFlow、Keras 或 H2O 搭配使用,进行研究、原型设计和实验是有意义的。但基于性能和操作方面的考虑,我不愿意推荐将 R 用于生产。虽然您可以写出能在生产服务器上部署的高性能 R 代码,但将这种用 R 语言编写的原型重新编码为 Java 或 Python 肯定会更容易。
本文为转载,原文出处:《AI 开发,究竟哪种语言强?》
干货分享:五大最适合学习AI开发的编程语言的更多相关文章
- 华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”
摘要:针对企业AI开发应用中面临的痛点和难点,为大家带来从实践出发帮助企业构建成熟高效的AI开发流程解决方案. 在数字化转型浪潮席卷全球的今天,AI技术已经成为行业公认的升级重点,正在越来越多的领域为 ...
- 干货分享:互联网运营 学习SEO从零开始 SEO深度解析学习笔记
最近在自学SEO,互联网运营,把做的笔记干货分享给大家啊! 希望能帮到大家,如有好的建议可以关注我[磨人的小妖精]或留言,大家一起探讨. 之前还写过一篇文章互联网运营+SEO:推荐必看的5本书籍,学习 ...
- [AI开发]将深度学习技术应用到实际项目
本文介绍如何将基于深度学习的目标检测算法应用到具体的项目开发中,体现深度学习技术在实际生产中的价值,算是AI算法的一个落地实现.本文算法部分可以参见前面几篇博客: [AI开发]Python+Tenso ...
- 最强最全干货分享:Android开发书籍、教程、工具等
最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...
- [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建
这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...
- 干货100+ 最超全的web开发工具和资源大集合
干货100+ 最超全的web开发工具和资源大集合 作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和 ...
- 【干货分享】Google 的设计准则,素材和资源
在谷歌,他们说, “专注于用户,所有其它的就会水到渠成 ”.他们遵循设计原则,寻求建立让用户惊喜的用户体验.谷歌一直挑战自己,为他们的用户创造一种视觉语言,综合优秀设计的经典原则和创新.谷歌设计规范是 ...
- 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题
写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...
- [AI开发]Python+Tensorflow打造自己的计算机视觉API服务
"与其停留在概念理论层面,不如动手去实现一个简单demo ." ——鲁迅 没有源码都是耍流氓github 前言 目前提供AI开发相关API接口的公司有很多,国外如微软. ...
随机推荐
- ELK搭建实时日志分析平台之二Logstash和Kibana搭建
本文书接前回<ELK搭建实时日志分析平台之一ElasticSearch> 文:铁乐与猫 四.安装Logstash logstash是一个数据分析软件,主要目的是分析log日志. 1)下载和 ...
- matlab操作(整理)
http://blog.csdn.net/ysuncn/article/details/1741828 http://zhan.renren.com/h5/entry/3602888498000464 ...
- November 21st 2016 Week 48th Monday
A bird is known by its note, and a man by his talk. 闻其声而知鸟,听其言而知人. Listen to what a man talks, watch ...
- spark搭建部署
基础环境准备 安装JDK1.8+,并设置环境变量 搭建zookeeper集群 搭建Hadoop集群 Spark local模式 上传编译完成的spark安装程序到服务器上,并解压到指定目录 [root ...
- 手写HASHMAP
手写HASHMAP const int MAXN=10010; const int HASH=10100; //需要hash的数的总个数最大值 struct HASHMAP { ...
- 禁用wps的云文档,恢复到清爽的状态
wps安装完成后,默认会开启云文档功能,每次打开表格.文档都会显示乱七八糟的一些东西,很麻烦 不得已只好手动为wps“瘦身”: 在wps表格或者文档的快捷方式上右键,选择打开文件所在位置 找到一个最新 ...
- ngRouter和ui-router区别
在单页面应用中要把各个分散的视图给组织起来是通过路由机制来实现的.本文主要对 AngularJS 原生的 ngRoute 路由模块和第三方路由模块 ui.router 的用法进行简单介绍,并做一个对比 ...
- autogen.sh脚本执行报错问题解决(针对DOMJudge平台搭建)
错误信息:./autogen.sh: 9: ./autogen.sh: aclocal: not found 解决办法: $ sudo apt-get install automake $ sudo ...
- selenium和PhantomJS的安装
针对w10系统 selenium安装 pip install selenium 默认安装的是3.x版本,但是3.x版本不支持PhantomJS,所以要安装2.x版本 pip install selen ...
- spark机制理解(一)
一 基本术语 Application: 基于Spark的用用户程序,包含了Driver程序和集群上的Executor. Driver Program: 运行行main函数并且新建SparkCont ...