首页 > 人工智能 > >内容页

Python和C/C++谁能成为核心算法

2018-10-25 16:17:00 来源:IT狂人

互联网产品日渐饱和,移动互联网也已进入下半场,市场已经从巅峰时代逐渐进入一个相对平稳的发展阶段,互联网人口渗透率已经超过了50%。人工智能掀起了新的一波世界科技浪潮,互联网巨头公司BAT、近年来崛起的人工智能企业旷世科技Face++、商汤科技、极链科技Video++都在不断增大人工智能领域的投入。

自从2017年国务院印发《新一代人工智能发展规划》中明确指出在中小学阶段设置人工智能课程之后,python一路逆袭成为人工智能时代最合适的语言,并借此为未来国家和社会发展奠定了人工智能的人才培养基础,甚至被众多程序员誉为“宇宙最好的编程语言”。

但人工智能的核心算法主要还是依赖于C/C++的。

因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到,所以某种意义上来说,其实C/C++才是人工智能领域最重要的语言。

Python是API binding,使用Python是因为CPython的胶水语言特性,能够把用其他语言制作的各种模块很轻松的连接在一起,比如3D游戏中的图形渲染,性能要求特别高就可以用C/C++重写,而后封装为Python可以调用的扩展类库。所以说要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的ffi门槛要低很多,尤其是使用Cython的时候,其他语言的ffi许多都只能导入C的函数入口点,复杂的数据结构大多只能手工用byte数组接起来,如果还需要回调函数输入那就无计可施了。

而Cpython的C API是双向融合的,可以直接对外暴露封装过的Python对象,还可以允许用户通过继承这些自定义对象来引入新特性,在一定条件限制下甚至可以从C代码当中再调用Python的函数。不过这也是PyPy这样的JIT解释器的一个障碍。而且Python历史上也一直都是科学计算和数据分析的重要工具,有numpy这样的底子,因为行业近似所以选择API binding语言的时候会首选Python,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。

机器学习作为人工智能的一个分支,它是让机器能具备摆脱对人工指令的依赖,能按照一定的算法开展自主学习的能力,它的出现才真正让“人工智能”不枉智能二字。在当下兴起的人工智能以及大数据运用上,Python的优势可以被广泛运用到许多领域和重要的日常软件功能当中,人脸识别、会话接口、商业智能等领域,Python都证明了它的实用性。自动化的司法调查、安全检查、网页分析等都有可能使用Python来实现。但未来5到10年,整个人工智能会往什么方向发展?Python和C/C++谁能成为核心算法,值得我们的期待。

标签: