不懂Python ,照样能入AI圈!

首页 > 新酷 > 程序世界 > 本文
2018年05月16日 22:13 | 搜狐 暮云
听说,Python的市场份额有望超过Java?还听说,高中生们都开始学Python了? 近日,TIOBE编程语言社区发布了2018年5月排行榜,Python的市场份额稳居第4。五月的PYPL编程语言排......

原标题:不懂Python ,照样能入AI圈!

听说,Python的市场份额有望超过Java?还听说,高中生们都开始学Python了?

近日,TIOBE编程语言社区发布了2018年5月排行榜,Python的市场份额稳居第4。五月的PYPL编程语言排行榜还显示,Python是增长最快的语言,甚至超越了Java,增长速度跃升第一。而早在GitHub 2017年度报告中,Python就已经成为了第二受欢迎的语言。

面对着这门在大学课程中丝毫不见踪影的计算机语言,你是不是有点慌?甚至已经瑟瑟发抖地买了一堆参考书?

稳住,其实在AI圈,并不是靠Python一杆枪打天下的。

Python的地位

Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

由于Python语言的简洁性、易读性以及可扩展性,Python在AI中被广泛应用。但是,它却有着致命的缺点——运算效率低下。

为什么呢?

第一,在Python中不需要申明变量。由于变量的类型不同,执行的操作也会不同。但是在Python中一个变量所指向对象的类型在运转时才确定,因此编译器无法做任何预测,也就无从优化。

举一个形象的例子,给命令a和命令b做加法,与给数字a和数字b相加的处理方式不同,结果也不同。因此对于Python来说,a和b到底是数字还是命令,系统需要在每一次运转中去判断,自然就拖慢了计算的效率。

第二,对于能够提升运算效率的JIT编译器,在Python中也不可用。目前适用于Python的JIT还在发展阶段,并无多少“油水”可捞,做这方面研究的公司、组织少之又少。因而,这种JIT的出现还有很长的一段路要走。

那么,这样的Python是如何被应用于对运算要求极高的AI的呢?

其实,Python主要被应用于计算图部分,而不参与运算模块。所谓计算图,即一个带有逻辑关系、运算节点的“图”型数据结构。计算图所做的,就是将不同的运算模块粘合在一起,因此Python也被称为胶水语言。

不同的语言,不同的天地

AI是一个庞大而精密的复杂机器,仅靠Python无法支撑。但Python的高粘合度却有效规避了这一不足,并给予诸多计算机语言一席之地。

在AI中,实际计算的部分主要还是由C语言和C++承担。要知道,C ++是世界上速度最快的编程语言,其在硬件层面上的交流能力使开发人员能够改进程序执行时间,对于AI项目是非常有用的。

如果说Python在AI中起到的是胶水的作用,那么C语言和C++就是那些被胶水粘合在一起的模块。在AI开发中,通常都是写好计算模块之后,运用Python进行封装。虽然封装可以根据需求改变自身的特点,但核心的部分仍然是封装之下的东西。

不仅如此,C语言与C++同样可以实现计算图的表达。甚至在较早之前,许多深度学习框架都是由C语言与C++写作而成的。而目前,许多主流深度学习框架也还保留着C语言的API。

除了它们,还有许多计算机语言也在AI领域被广泛应用。

Java

Java就是AI项目的一个很好的选择。作为解释型语言,它具有优秀的扩展性,且可以应用JIT提升运算效率。由于其发展比较成熟,可用的资源与稳定程度均要高于Python。

Lisp

Lisp因其出色的原型设计能力和对符号表达式的支持,也在AI领域崭露了头角。Lisp是因人工智能而设计的语言,也是第一个声明式系内函数式程序设计语言。它因其可用性和符号结构而主要用于机器学习/ ILP子领域。

Prolog

Prolog与Lisp在可用性方面旗鼓相当。它是一种逻辑编程语言,主要是对一些基本机制进行编程,对于AI编程十分有效,例如它提供模式匹配、自动回溯和基于树的数据结构化机制。结合这些机制可以为AI项目提供一个灵活的框架。

读芯君开扒

Python到底要不要学?

其实,对于要进入AI圈的大学生,对计算机语言的要求并没有那么高,反而数据结构、算法、计算机系统、Linux、计算机网络甚至英语等基础更重要。

话虽如此,但由于Python好上手、开发应用效率高,小芯的建议是,没事还是可以学一学的。

首先,Python具有丰富和强大的库。被称为胶水语言的它,能够把用其他语言制作的各种模块很轻松地联结在一起,尤其是C语言和C++。

而且,无论是大数据分析还是机器学习,Python都有很强大的支持能力。

最重要的是,Python已经成为了AI圈的行业惯例。要知道,对于一门计算机语言来说,谁先占领终端平台谁就是老大。不学Python,定会有诸多掣肘。

留言 点赞 发个朋友圈

我们一起探讨AI落地的最后一公里

作者:羊习习

参考文献链接:

http://m.elecfans.com/article/524016.html

https://www.zhihu.com/question/21976478/answer/47194940

如需转载,请后台留言,遵守转载规范

  • 参会企业专题| 北京微视新纪元
    北京微视新纪元科技有限公司(微视图像)始于1994 年,专业从事图像采集卡、系统、软件、高清晰度摄像头、智能相机等自主产品的研发与销售,拥有雄厚的图像采集、硬件研发和软件自主开发能力,具备丰富的视觉系...... 程序世界 2018-05-25 | 搜狐 暮云
  • 四十余款破解工具携带病毒 盗取信用卡账户等隐私信息
    近日,火绒安全团队截获病毒“Socelars”,正通过KMSpico、Adobe Photoshop 等四十余款软件破解工具进行传播。该病毒会利用被感染用户的facebook临时登录凭证,专门窃取用户...... 程序世界 2018-05-25 | 搜狐 暮云
  • Web App开发:比起Web AppNative App更具优势,免编程就可制作
    Web App开发需要多少钱?与Native App有什么区别,哪一种好?哪一种才是趋势?这里对两者进行详细分析,让小白也可以快速理解区分。 Native App开发 就是常说的原生APP开发模式,利...... 程序世界 2018-05-25 | 搜狐 暮云
  • JAVA8之lambda表达式详解
    Lambda 表达式? Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中) Lambda表达式是JAVA8中提供的一种新的特性,它支持JAVA也能进行简单的“函数式编程”。 它是一个...... 程序世界 2018-05-25 | 搜狐 暮云
  • 区块链兄弟技术10问:以太坊的那些事
    区块链兄弟,区块链技术专业问答先行者,中国区块链技术爱好者聚集地 作者小以 来源区块链兄弟社区 原文链接http//www.blockchainbrother.com/article/edit...... 程序世界 2018-05-25 | 搜狐 暮云
  • 不锈钢水龙头激光焊接机厂家4轴自动激光焊接机-超米激光
    超米激光简讯随着大家生活品质的提高、对卫浴用品的要求也越来越高,不管是水龙头还是淋浴花洒还是菜盆脸盆,都是要求美观竞争、质量要求也是非常高,所以作为厂家的你如果达不到客户的要求基本很难在这个竞争激烈...... 程序世界 2018-05-25 | 搜狐 暮云
  • 新网站的优化步骤应该怎么走?
    其实这个话题已经是老生常谈了,原创先锋在官网已经发布过很多的类似文章,但是今天有合作过的客户咨询,那么小编想着,就再给大家分享一下。 一、选择关键词 对于关键词的选择小编也说过好几次了,之前也发布过关...... 程序世界 2018-05-25 | 搜狐 暮云
  • 技术流:Jmeter加密接口必备测试技能了解一下
    作者小倩子,融都科技质量管理部 编辑涨停板 随着互联网的发展,越来越多的系统开始提供接口调用。我们进行接口测试的时候,大多数接口或多或少的都使用了各种加密验证,保证接口的安全调用。如何使用jmet...... 程序世界 2018-05-25 | 搜狐 暮云
  • 限时下载 | 132G编程资料:Python、JAVA、C,C++、机器人编程、PLC,入门到精通~
    当程序员处瓶颈期应如何提高自己?有很多关于“学习编程”的资源,能够让人从 0 到新手(虽然这些资源中大多数的质量是值得商榷的),但是怎么样才能将中级水平提高到专家级? 良好的编程能力对于大多数工程师而...... 程序世界 2018-05-25 | 搜狐 暮云
  • 新手做网站建设有哪些基本流程
    网站建设,对于很多新手来说简直是一头雾水,很是迷茫。只要遇到问题就感觉无从下手,不知所措。这就造成在网站制作过程中,即使看了很多教程但是没有具体的系统性的学习,总还是存在很多问题,遇到问题之后又不知道...... 程序世界 2018-05-25 | 搜狐 暮云
  • 新手入门|速成应用免费教你如何制作微信小程序零基础开发搭建教程
    微信小程序已经迈入了爆发阶段,很多中小企业和商户正在不断涌入这个市场。但是很多不懂技术不懂代码的小白却不知道去哪里制作微信小程序,现在就以可视化小程序开发工具「速成应用」来告诉你们,如何制作出专属于自...... 程序世界 2018-05-25 | 搜狐 暮云
  • 中国工控|请善待每一个电气工程师!尊重每一位机械工程师!
    技术文章来源提供 什么是电气工程师? 去过设备调试现场的朋友,你常常会看见一个人,蜷缩着身子趴在桌上,盯着笔记本电脑屏幕,时而看看转动的机器,时而动动鼠标点点键盘,时而拭一拭额头的汗水…… 那么恭喜你...... 程序世界 2018-05-25 | 搜狐 暮云
  • 阻塞队列实现生产者消费者模式
    来源ImportNew - 刘志军 生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。这篇文章我...... 程序世界 2018-05-25 | 搜狐 暮云
  • 想多赚点钱?先来学学怎样成为合格的Java程序员
    每个Java程序员都有个高薪梦,高薪的前提是具备拿高薪的能力,本文就为大家介绍如何成为一个合格的Java程序员,帮你顺利拿高薪 在过去几年中,政府和社会一直在努力使“Geek”再次酷起来。总统和总理...... 程序世界 2018-05-25 | 搜狐 暮云
  • 只有20行Javascript代码!手把手教你写一个页面模板引擎!
    AbsurdJS 作者写的一篇教程,一步步教你怎样用 Java 实现一个纯客户端的模板引擎。整个引擎实现只有不到 20 行代码。如果你能从头看到尾的话,还能有不少收获的。你甚至可以跟随大牛的脚步也自己...... 程序世界 2018-05-25 | 搜狐 暮云
  • 54个国家大量路由器被僵尸网络VPNFilter控制
    E安全5月25日讯 思科和赛门铁克公司于美国时间2018年5月23日陆续发出安全预警黑客利用一个复杂的规模化恶意软件 VPNFilter,感染了全球54个国家的50万台路由器,并构建了庞大的僵尸网络...... 程序世界 2018-05-25 | 搜狐 暮云
  • NFS-Ganesha源代码分析
    人工智能+区块链的发展趋势及应用调研报告 1. NFSv4简要概述 NFS这个协议(NFSv2)最初由Sun Microsystems在1984年设计提出,由于存在一些不足,因此在随后由几家公司联合推...... 程序世界 2018-05-25 | 搜狐 暮云
  • 浅析敏捷测试及其实践运用
    人工智能+区块链的发展趋势及应用调研报告 引言 随着互联网技术的发展,产品的快速迭代且能适应市场需求已经成为各大公司的痛点。而传统的开发模式已经不再适用于快速迭代的产品,在这种情况下,敏捷开发模式因其...... 程序世界 2018-05-25 | 搜狐 暮云