首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不懂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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516A1UOKX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券