我似乎找不到一个基于C++的机器学习/人工智能框架,能够实现多种神经网络算法。我在使用Java时曾使用Encog来达到这些目的,但在C++中我没有看到功能上类似的任何东西。我见过的最接近的是FANN,但它缺少一些功能,例如LMA和退火算法。
编辑:我找到的最佳替代方案是Shark,但正如我所说,它仍然缺乏一些功能,仅有更常用的功能,没有LMA、退火或PSO或那类水平的任何东西。
回答:
好吧,经过几天断断续续的搜索,我可以相当肯定地说,这样的东西并不存在。现有的库中没有一个能提供接近Encog那样的复杂程度,而且由于我想要C++的一个主要原因是我确实需要QT集成,我想我最终会使用Encog和Jambi。
无论如何,对于那些稍后/通过Google偶然发现这个问题的朋友们,基本上只有三个框架/库提供了一些合理的功能,如果你不需要LMA、PSO、退火或任何更奇特的功能,这些应该足够了:
- Shark
- dlib,也由ffh提到
- OpenCV的ML库由rics提到
基本上就是这样。其余的要么不成熟/已死,要么功能上实在是太缺乏了,不值得一提。如果我决定自己开发一个项目(很可能,因为我几乎是出于工作需要),我会确保在这里更新一个链接。