首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程反向传播

多线程反向传播
EN

Stack Overflow用户
提问于 2012-01-06 05:12:52
回答 2查看 2.4K关注 0票数 1

我已经在VB.NET -it中编写了一个反向传播类,效果很好-我正在C#人工智能项目中使用它。

但我在家里有一台AMD Phenom X3,在学校有一台英特尔i5。我的神经网络也不是多线程的。

如何将反向传播类转换为多线程算法?或者如何在其中使用GPGPU编程?或者我应该使用任何具有多线程反向传播神经网络的第三方库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-06 06:22:21

JeffHeaton has recommend that you use resilient propagation (RPROP)而不是反向传播。下面是关于如何执行多线程RPROP (MPROP)的示例:

杰夫(来自

  • Article on C# multithreaded backpropagation heaton)
  • Chapter 7.2.1- "Propagation and Multithreading" (p.94 of Introduction to Encog 2.5 for C#)

)

很难在这里讨论所有的细节,所以我建议你要么阅读这篇文章,要么看看我引用的书的相关章节。当然,这是假设您熟悉并发编程。

更新:

弹性传播通常会超过反向传播相当多的因素。此外,RPROP没有必须设置的参数。反向传播要求指定学习率和动量值。为反向传播找到最优的学习率和动量值可能很困难。对于弹性传播,这不是必需的。(来源:Encog Machine Learning)

票数 3
EN

Stack Overflow用户

发布于 2013-12-29 05:07:14

我尝试过为RPROP批处理实现多线程,但似乎总是比使用单线程慢。我已经尝试在循环级别分别实现“#杂注omp并行”,并在单独的线程中计算误差、梯度和权重。在我的解释中,在每个线程中完成的计算似乎太小,不能产生切换线程和同步结果(互斥)的计算结果。我在想我是不是做错了什么?我的结论是,运行RPROP单线程会更聪明,同时在单独的线程中同时处理多个神经元网络。大多数实现通常意味着多个互连的NN,因此这将是有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8749890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档