为何AI招聘信息中常见要求熟悉python和/或C++,却很少提到要熟悉java?

[复制链接]
dermot 发表于 2023-10-2 12:45:37|来自:湖北 | 显示全部楼层 |阅读模式
那么是不是意味着,从职业规划上,若学习AI,进入机器学习,深度学习领域,在编程语言学习这方面的规划上,应该走python加C++技术栈的路线,而不应该花精力去深入学习java?为何java如此流行,看似什么都能做,却没能像python一样,在人工智能领域也火爆起来?java为什么不能提供类似tensorflow和pytorch那样使用火爆的框架?
全部回复5 显示全部楼层
某人 发表于 2023-10-2 12:45:42|来自:湖北 | 显示全部楼层
这个问题就好比:为什么学校要有语文数学英语物理化学生物体育音乐老师?为什么不能语文老师教全部学科或者体育老师教数学?
因为术业有专攻,编程语言也一样。每个语言都有其擅长的领悟,能做和能做得最好是两码事。
然后回到问题,人工智能无论是训教模型或者执行,都有极高性能要求,而GPU对这些场景是有天生优势的,这时,我们需要做的就是深入底层深入硬件,去驱动这些硬件去帮我做事,这就明白为什么需要c++。而一个跑在jvm上的Java是没办法也不适合干这种活。Java本来就是被设计出来用作顶层应用开发而非底层,它的优势是跨平台可移植,但它的优势对于人工智能却是劣势。
那为什么Python会火?首先,它是一门脚本语言,这意味着跑起来既不需要编译,也不需要运行在虚拟机上。其次,它的语法简单,小白学习三两天也能上手撸项目了。然后,它的适用范围广,web开发、服务器运维、移动应用、爬虫、黑客工具,哪里都有Python的身影。最后,Python是由C语言开发而来,所有C/C++的类库它都能轻松调用。
你可能会疑问,既然人工智能对性能要求这么高,为啥Python如此低性能缺可以应用其中?因为,Python压根就不是给你在AI上做最终落地的,结合上面所说的特点,它真正用途是给算法工程师和AI科学家用来快速调整算法和调试验证AI程序。待算法正式通过以后需要大规模落地,此时就会换上C++。
最后再提一下Java吧,虽然在AI方面没什么用武之地,但与AI想近的大数据却是Java的天地。
sexbobo 发表于 2023-10-2 12:46:24|来自:湖北 | 显示全部楼层
因为研究AI库那群人用的是python,然后你要性能好,要用C++来重构。所以没有Java的事情。
空城 发表于 2023-10-2 12:46:33|来自:湖北 | 显示全部楼层
最主要的问题就是java没法深入硬件层,一旦要和硬件合作现阶段就必定是c/c++,python只是用来验证数学逻辑层面的可行性的,落地才会考虑用c++写,Python的工作也可以用java代替,不过java比起python过于繁琐,上手难度要更高,对算法方向的人不太友好,以后也用不上,所以没人用
gurucn 发表于 2023-10-2 12:47:27|来自:湖北 | 显示全部楼层
因为几乎没人用 Java 做 AI ;虽然 Java 有人工智能的库,但是没人用。
原因也很简单,因为性能问题。Java 的性能就是没有 C++ 快,而人工智能对性能的要求很高。(君不见没个2080Ti都不敢上网下围棋~)因此,Java 本就不适合做人工智能。
至于 Python?这个不是用来做人工智能的,而是快速验证方案可行性的。首先方向对了,才值得我花大力气写 C++ 程序。你看看 Leela Zero,就是 C++ 写的。他怎么不用 Python 写呀?这写出来没法儿用的!(运行速度无法有效训练神经网络)
时代电脑 发表于 2023-10-2 12:48:22|来自:湖北 | 显示全部楼层
我猜是因为 cuda
cuda 程序一般用 C/ C++ 编写,而 Python 则是因为它有 Tensorflow 和 PyTorch 这两个优秀的深度学习库。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表