为什么有人说C在人工智能领域的应用似

开发

人工智能领域大多数开发人员都使用Keras、Torch、Caffe、Watson、TensorFlow等库。这些低级库都是C/C++开发并且经过高度优化,可以处理大量运算的工作。

Python通常只是用于执行高级任务,例如描述神经网络层、加载数据、启动处理和显示结果。

使用C++代替Python来执行高级任务几乎不会带来任何性能改进,但对于非开发人员来说会更困难,因为它需要关心内存管理。此外,一些人工智能人员可能没有非常扎实的编程或计算机科学背景。

另一个类似的例子是游戏开发,其中引擎是用C/C++编码的,并且通常所有游戏逻辑都用高级语言编写脚本。

C++实际上是AI/ML领域最流行的语言之一。一般来说,Python可能更受欢迎,但正如其他人指出的那样,混合系统实际上很常见,其中CPU密集型数字运算是用C++完成的,而Python用于更高级别的函数。

生产

如果您有一个成熟的系统可以用于生产,并且不需要太多调整,那么C++(甚至C)可能就可以。您需要投入大量时间来构建软件,但它应该运行得相当快。

但是,如果您仍在尝试设置和参数,并且可能需要调整架构,那么C++的使用将会很笨拙。你需要像Python这样的语言,它可以让你更容易地进行修改。最起码更改代码更容易,因为通常可以使用Python等语言更快地进行编码。您付出的代价是软件通常性能不佳。

您需要决定如何权衡最适合您。通常最好花更少的时间在编码上,并且不要太担心更长的运行时间。如果您减少一天的时间来完成代码,那么C代码版本就需要很多时间才能赶上。大多数时候这是不值得的。

一种常见的方法似乎是混合系统,其中核心库是用C/C++实现的,因为它们不需要太多改变,而前端/粘合/接口是用Python编写的,因为你需要灵活性和速度不是那个关键。

顺便说一句,这不是人工智能特有的问题,而是解释语言与编译语言的一般问题。对于人工智能来说,许多系统仍然专注于研究而不是应用,这就是开发速度胜过执行速度的地方。

对比

一个好的Python程序员可以用Python很好地编码,另一个好的C++程序员可以用C++很好地编码。

许多最近的主要机器学习库(例如TensorFlow或Gudhi,两者大多用C++编码)实际上在Python中比在C++中更容易使用。但是您可以通过C++代码使用TensorFlow或Gudhi,因为TensorFlow和Gudhi大部分是用C++编写的,并且都提供并记录了C++API(而不仅仅是PythonAPI)。

C++支持多线程编程,但通常的Python实现有其GIL,是字节码的,因此比C++慢得多(通常通过GCC或Clang等优化编译器进行编译;但是您可以找到C++解释器,例如Cling)。Python的一些实验性实现是JIT编译的并且没有GIL。

还请注意,C++比Python难学得多。即使拥有十几年的C++编程经验,我也不能声称真正了解C++的大部分内容。

遗憾的是,最近教授人工智能软件工程的书籍(例如这本或那本)都使用Python(而不是C++)作为示例。




转载请注明:http://www.aierlanlan.com/rzgz/6346.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了