如何将多线程应用于反向传播神经网络训练?

如何将多线程应用于反向传播神经网络训练?,第1张

如何将多线程应用于反向传播神经网络训练?

首先,不要使用反向传播。还有许多其他选择。我建议尝试使用RPROP(d性传播)。对您的反向传播算法的修改不会那么大。您无需指定学习率或动力。实际上,对于神经网络中的每个连接,几乎就像您具有一个单独的,可变的学习率。

至于将多线程应用于反向传播。我刚刚写了一篇有关该主题的文章。

http://www.heatonresearch.com/encog/mprop/compare.html

基本上,我创建了多个线程并划分了训练数据,因此每个线程的数量几乎相等。我正在计算每个线程中的梯度,并将它们累加到一个归约步骤中。如何将梯度应用于权重取决于所使用的传播训练算法,但是权重更新是在关键部分完成的。

如果训练样本的数量远多于权重,则代码在多线程梯度计算中所花费的时间要比关键部分权重更新所花的时间多得多。

我在上面的链接中提供了一些性能结果。它确实确实加快了速度!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5601263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存