【问题标题】:Multi threaded AForge.NET training多线程 AForge.NET 训练
【发布时间】:2013-04-19 08:58:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: multithreading aforge neural-network


    【解决方案1】:

    在每 N 次迭代中组合神经网络并不能很好地工作。只取权重并将它们组合起来可能非常棘手。在某些方面,这就是遗传算法的交叉操作的工作原理。

    真正做到这一点的唯一方法是修改 AForge 的训练以支持多线程。基本上要做到这一点,您需要映射梯度计算,然后对梯度进行归约和。然后使用减少的梯度来更新网络。

    我已经在 Encog 框架中实现了这个确切的东西,它支持多线程 (RPROP),并且有一个 C# 版本。 http://www.heatonresearch.com/encog.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-04
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2014-12-15
      • 1970-01-01
      相关资源
      最近更新 更多