Multithreading 多线程反向传播
我已经在VB.NET中编写了一个反向传播类-它工作得很好-我正在C#人工智能项目中使用它 但我家里有一台AMD Phenom X3,学校里有一台Intel i5。我的神经网络不是多线程的 如何将反向传播类转换为多线程算法?或者如何在其中使用GPU编程?或者我应该使用任何具有多线程反向传播神经网络的第三方库吗?而不是反向传播。以下是有关如何执行多线程RPROP(MPROP)的示例:Multithreading 多线程反向传播,multithreading,artificial-intelligence,neural-network,gpgpu,backpropagation,Multithreading,Artificial Intelligence,Neural Network,Gpgpu,Backpropagation,我已经在VB.NET中编写了一个反向传播类-它工作得很好-我正在C#人工智能项目中使用它 但我家里有一台AMD Phenom X3,学校里有一台Intel i5。我的神经网络不是多线程的 如何将反向传播类转换为多线程算法?或者如何在其中使用GPU编程?或者我应该使用任何具有多线程反向传播神经网络的第三方库吗?而不是反向传播。以下是有关如何执行多线程RPROP(MPROP)的示例: (来自杰夫·希顿) 这里很难讨论所有的细节,所以我建议你要么读那篇文章,看看我引用的那本书的相关章节。当然,这
- (来自杰夫·希顿)
我尝试过为RPROP批处理实现多个线程,但似乎总是比使用单个线程慢。我尝试在循环级别“pragma omp parallel”上单独实现,并在单独的线程中计算错误、梯度和权重。在我的解释中,似乎每个线程中完成的计算太小,无法产生在切换线程和同步结果(互斥)中完成的计算结果。我想知道我是否做错了什么?我的结论是,运行RPROP单线程,同时在单独的线程中同时处理多个神经元网络,会更明智。大多数实现通常意味着多个互连的NN,因此这是有意义的。你能告诉我为什么RPROP比反向传播更好吗?我更新了我的答案,说明了为什么RPROP更好,但你不必使用RPROP。多线程概念与backprop的工作原理相同。谢谢,那篇文章是不是说我应该对主循环中的循环执行多线程处理(哪一次运行意味着一个周期/历元)?如果这是正确的,每个历元只需50-200毫秒即可完成。如果我的问题是正确的(在前面的评论中),我应该这样说:你上面提到的问题的答案都会解决你的问题,但简而言之:你想创建几个线程,并在你想运行的操作上反复使用它们(即训练你的神经网络)。