从技术上讲,Python并没有那么慢。
在本机Python中,您可以在大约一秒内对列表执行10M次追加操作。
但这个数字毫无意义。
深度学习研究人员使用C++、C但不仅仅是原生的,如果我占95%的人的话。Native意味着您没有编写实际的C++或C代码。
大多数深度学习库(如Torch和Tensorflow)都是用C++(以及其他互补语言)编写的,这就是它们速度快的原因。
您访问这些库所用的API是Python语言,这不会导致任何重大的性能问题。从本质上讲,CPU密集型的工作是用C++完成的。
对GPU的依赖是另一回事。Python实际上拥有相当多的工具和库(甚至GUI和游戏引擎),可以直接利用GPU来执行图形任务。使用GPU进行ML/DL是小菜一碟。
TensorFlow和PyTorch都通过GPU支持分布式计算。
PyTorch包括CUDA11.X安装以及主要库(Torch、音频)。这使得您可以轻松使用您拥有的任何NVIDIA显卡,例如未经验证的CUDAGPU(如MX)。
TensorFlow仅需要支持CUDA的NVIDIAGPU(不需要AMD,除非您有其他方式)。
另一方面,sklearn利用了Python,它和其他库一样快,它仍然使用Numpy(用C编写),这给它带来了性能优势。同样,计算量大的事情是由Numpy处理的。
如果DL/ML仍然被C++、C使用,那么今天只有5%的ML/DL工程师会考虑使用它。
此外,JupyterNotebooks有助于将python代码分隔成特定的部分,您可以在其中将计算成本较高的部分划分为Cell。
然后,您只需运行这些单元一次,这使得您的解决方案可以花费更少的时间来开发和评估,而不是在IDE上灵活地从头到尾运行所有内容。
这使得Python中的ML解决方案的开发变得非常快速且可靠。