多线程AForge.NET培训

时间:2013-04-19 08:58:44

标签: multithreading aforge neural-network

我正在使用AForge.NET ANN并在我的训练集上训练它。因为培训是单线程的,并且过程可能需要很长时间,所以我想知道是否可以运行多线程培训。

因为在训练弹性反向传播网络时使用线程是一个问题,我想在不同的网络之间分割我的训练集,每N个时期一次,将所有网络的权重合并为一,然后,将其复制到所有线程(所以下一个纪元将从新的权重开始)。

我似乎无法在AForge.NET中找到一个结合了两个(或更多)网络的方法。寻求有关如何开始实施过程的一些帮助。

1 个答案:

答案 0 :(得分:3)

每N次迭代组合神经网络将无法正常工作。仅仅采用权重并将它们组合起来可能非常棘手。在某些方面,这就是遗传算法的交叉操作的工作原理。

真正唯一能够做到这一点的方法是修改AForge的培训以支持多线程。基本上要做到这一点,你需要映射渐变计算,然后对渐变进行减少求和。然后使用缩小的渐变来更新网络。

我在Encog Framework中实现了这个功能,它支持多线程(RPROP),并且具有C#版本。 http://www.heatonresearch.com/encog