小程序开发语言python_小程序是用什么语言开发的?5种最佳语言分享

你应该学习哪种编程语言来探索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,阿帕奇MXNet,Theano等)是有效的Python的第一个项目。

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

没有绕过它。Python是人工智能研究的前沿语言,这是您可以找到机器学习和深度学习框架最多的语言,也是人工智能领域几乎所有人都会说的语言。由于这些原因,尽管您的作者每天至少诅咒一次空白问题,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在未来一年的空间中所做的工作。结合C / C ++的速度与类型和数据安全性,Rust是实现生产性能而不会造成安全性问题的最佳选择。并且TensorFlow绑定已经可用。

4. JavaScript

JavaScript的?究竟是怎么回事?那么,谷歌最近发布了TensorFlow.js,这是一个WebGL加速库,允许您在Web浏览器中训练和运行机器学习模型。它还包括Keras API以及加载和使用在常规TensorFlow中训练过的模型的功能。这可能会吸引大量开发人员涌入AI领域。虽然JavaScript目前对机器学习库的访问权限与此处列出的其他语言不同,但很快开发人员将在他们的网页中添加神经网络,与添加React组件或CSS属性几乎相同。同时授权和恐吓。

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

5. R

R进入前五名的底部,并且趋向下行。R是数据科学家喜欢的语言。但是,其他程序员发现R在第一次遇到它时感到有些困惑,因为它采用了以数据框架为中心的方法。如果您有一组专门的R开发人员,那么使用与TensorFlow,Keras或H2O进行研究,原型设计和实验的集成是有意义的,但是我不愿推荐R用于生产用途。

其他AI编程选项

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

LUA

几年前,Lua在人工智能领域处于领先地位。借助Torch框架,Lua是深度学习开发中最受欢迎的语言之一,您仍然会在GitHub上遇到许多历史深入的学习工作,这些工作通过Lua / Torch定义了模型。我认为,为了研究和查看人们以前的工作,熟悉Lua是个好主意。但随着TensorFlow和PyTorch等框架的到来,Lua的使用大幅下降。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tcl之内容

转载于:https://www.cnblogs.com/chip/p/5847126.html

自定义hibernate validation注解

效果和优点 先看最后效果: public class UserEntity {Password private String password;Emailprivate String email;} 上面使用了两个自定义的注解来验证password和email,这样做的好处是:一处定义,处处使用,要修改…

《JS权威指南学习总结--9.5 类和类型》

内容要点: 介绍了三种用以检测任意对象的类的技术,instanceof运算符、constructor属性,以及构造函数的名字。 但每种技术都不甚完美,本节总结了鸭式辩型,这种编程哲学更加关注对象可以完成什么工作(它包含什…

js密码强度正则表达式_知道这20个前端正则表达式,能让你做项目时少写1000行甚至一万行

正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的…

MongoDB数据库设计备忘

1、sex存为01还是男女? 存为01主要是为了国际化和节省存储空间。存为01很容易转换成不同语言表示的男女。 2、文件存储方案 MongoDB有GirdFS用来将文件直接保存到数据库,如果使用nginx,可以直接使用http读取GridFS里面的文件。 所以&…

react js 按条数 展开/折叠

//2条const MAX_SHOW_NUM 2;class HotDiscuss extends Component { static propTypes { //验证 repliedCommentList: PropTypes.array, }; constructor(props) { super(props); this.state { //子评论折叠 isCl…

python怎么获取时间_Python:如何从datetime.timedelta对象中获取时间?

在我看来,MySQL中的TIME类型旨在表示时间间隔,就像Python中的datetime.timedelta那样。从您引用的文档中:TIME values may range from -838:59:59 to 838:59:59. The hours part may be so large because the TIME type can be used not only…

腾讯视频客户端导出MP4格式

腾讯视频下载下来之后是.qlv格式,这种格式只能使用客户端播放。感觉挺蛋疼的,Mp4好不容易让各种设备都可以统一播放视频了,这样一搞感觉又倒退了几十年,关键的是,有些资源是腾讯独家的,不装客户端就看不了&…

Java上传文件到MongoDB GirdFS

上传有两种方式,一种是使用UploadFromStream,另外一种是OpenUploadStream方式,这里使用的是第二种方式: public ObjectId save(){GridFSBucket gfsbk GridFSBuckets.create(db, "user_photo");byte[] data "Data…

js后退页面不重新加载_快应用:支持加载单独JS文件的规范思考

当前快应用的项目中,支持加载其它JS文件(通过:require(./foo.js)),然后通过webpack工具处理依赖,最终完成页面JS的构建,其中页面JS包含了引入的所有JS内容;本文讨论的主要是&#xf…

Linux Linux程序练习七

题目&#xff1a;实现两个程序mysignal、mycontrl&#xff0c;mycontrl给mysignal发送SIGINT信号&#xff0c;控制mysignal是否在屏幕打印“hello”字符串。 //捕捉信号#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h>…

python读取每一行文字二十四_python接口自动化(二十四)--unittest断言——中(详解)...

简介上一篇通过简单的案例给小伙伴们介绍了一下unittest断言&#xff0c;这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例&#xff0c;设计了 2 个用例&#xff0c;一个是查询北京的天气&#xff0c;一个是查询南京为例&#xff0c…

spring MVC配置form支持PUT和DELETE方法

REST的关键原则之一就是“使用标准接口”&#xff08;the use of the Uniform Interface&#xff09;&#xff0c;也就是提倡根据不同的语义使用GET, PUT, POST和DELETE方法&#xff0c;而html的form标签只支持两种提交方法&#xff1a;POST和GET&#xff0c;所以&#xff0c;为…

如何学习编译原理?

编译原理很难学&#xff0c;但如果自己动手编&#xff0c;会简单一点&#xff0c;而且不要想一口吃成胖子&#xff0c;从词法分析开始写&#xff0c;一步步来&#xff0c;下个龙书电子版看看。慢慢来&#xff0c;一点一点地去消化它&#xff0c;让它成为你的知识。 转载于:http…

Spring MVC访问不到静态资源

运行Spring MVC项目&#xff0c;发现.css&#xff0c;js等文件加载不了&#xff0c;一般是spring MVC的拦截匹配导致的。 例如我在web.xml里这样配置&#xff1a; <servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.w…

206. Reverse Linked List

Reverse a singly linked list. Solution 1: 思路&#xff1a;null的使用。用一个null node来承接&#xff0c;一个一个接上去即可。一刷的时候还觉得这node转化好麻烦好神奇&#xff0c;熟悉之后其实做起来很快。 /*** Definition for singly-linked list.* public class List…

labview项目实例_labview操作者框架

0.引言操作者框架适合于多并行任务的项目。在这样的项目中&#xff0c;多个并行任务之间往往需要相互通信&#xff0c;传统的解决办法是&#xff0c;每个任务一个队列&#xff0c;一个while循环&#xff0c;多任务项目需要在一个程序框图使用多个while&#xff0c;不好看。NI说…

eclipse发布web不带项目名的url

默认发布后访问地址是&#xff1a; http://localhost:8080/huanle/ 要达到的效果是&#xff1a; http://localhost:8080/ 不带项目名的url的好处是&#xff0c;不用再在每个地址前加<% path%>了&#xff1a; &#xff08;很烦有木有&#xff09; 操作方法&#x…

php 随机在文章中添加锚文本_页面SEO优化的锚文本优化概念

SEO优化分为结构优化和页面优化&#xff0c;页面的SEO优化中其中一个重点是锚文本的建设。锚文本的概念就是网站的内部链接&#xff0c;较为常见的就是将文章中的关键词作为锚文本。但在具体建设当中&#xff0c;很多网站对锚文本的处理出现了很多错误。这是因为对锚文本的优化…

求一个整数数组的最大元素,递归方法实现

Java版本&#xff1a; public class Main {public static void main(String[] args) {int[] array {1, 3, 5, 6, 3, 5, 3, 8};System.out.println(findMaxValue(array));}private static int findMaxValue(int[] array) {if(array.length < 0 || array null) {return -1;}…