用于家庭AI学习/实验的开源工具?


9

我想对神经网络进化(NEAT)进行一些实验。早在90年代,我就用C ++编写了一些GA和神经网络代码,只是为了玩弄而已,但事实证明,DIY方法非常耗费人力,最终我放弃了它。

从那时起,事情发生了很大的变化,并且有很多非常不错的开源库和工具可以满足人们的几乎任何兴趣。我已经用Google搜索了不同的开源库(例如DEAP),但是我可以使用一些帮助来选择一个合适的库...

  • 我花了很多时间编写代码来可视化正在发生的事情(神经网络状态,人口适应度)或最终结果(图表等)。

    也许这必须由一个单独的开源库来实现,但是可视化支持将使我能够在问题/解决方案上花费更多的时间,而在实现细节上花费更少的时间。
  • 我知道C / C ++,Java,C#,Python,Javascript和其他一些语言。在高级语言和家用硬件上的良好性能之间进行很好的权衡将是一个不错的选择。

有经验的人可以建议一个好的开源库或工具集吗?


这个问题属于softwarerecs.stackexchange.com。顺便说一句,对我来说,您的问题似乎很广泛,因此无论如何都应该关闭。
nbro

@nbro-谢谢,我怀疑有个更好的选择,但是不了解softwarerecs。
斯科特·史密斯

那些赞成这个问题的人可以告诉我们为什么吗?
昆通尼亚州

Answers:


3

因为这是用Javascript编写的,并且还没有提供GPU支持,所以它的运行速度很慢。但是,摆弄灵活的网络体系结构非常好。它现在提供的唯一可视化是网络体系结构图,但是图形可以轻松实现。

https://github.com/wagenaartje/neataptic


2

好吧,如果您选择使用TensorfFlow,那么TensorBoard将作为软件包的一部分。那可能与您要寻找的东西很接近。

借助TensorFlow,您可以使用C ++,Python和其他几种语言进行编码(我认为同时也存在Ruby和Java绑定,现在可能还有其他绑定)。



2

正如您所描述的,还有DXNN,它是一个用Erlang编写的神经进化系统。 https://github.com/CorticalComputer/DXNN2

我对其进行了一些工作以使其模块化,因此您将其用作库并保持代码/应用程序隔离。

这是一个代码示例,该示例将DXNN下载为库。它还会生成gnuplot就绪的数据文件以进行可视化。


2

Fann(http://leenissen.dk/fann/wp/)是一个免费的开源神经网络库。

FANN功能:

  • C语言中的多层人工神经网络库
  • 反向传播训练(RPROP,Quickprop,批处理,增量式)
  • 不断发展的拓扑训练,可动态构建和训练ANN(Cascade2)
  • 易于使用(只需三个函数调用即可创建,训练和运行ANN)
  • 快速(执行速度是其他库的150倍)
  • 多功能(可以即时调整许多参数和功能)
  • 记录良好(易于阅读的介绍文章,详尽的参考手册以及描述实施注意事项的50多页大学报告等)
  • 跨平台(据报道,Linux和Unix的配置脚本,Windows的dll文件,MSVC ++的项目文件和Borland编译器也可以正常工作)
  • 实现了几种不同的激活功能(包括用于增加速度的逐步线性功能)
  • 易于保存和加载整个ANN
  • 几个易于使用的例子
  • 可以同时使用浮点数和定点数(实际上浮点数,双精度和整数都可用)
  • 优化了缓存(针对额外的速度)
  • 开源,但仍可用于商业应用(根据LGPL许可)
  • 易于处理培训数据集的框架
  • 图形界面
  • 语言绑定到大量不同的编程语言
  • 广泛使用(每天约100次下载)

2

对于遗传算法,我写了GeneticSharp

.NET Core和.NET Framework的多平台遗传算法库。该库具有GA运算符的几种实现,例如:选择,交叉,突变,重新插入和终止。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.