Machine learning 当通过多个线程训练神经网络时,没有数据访问同步是正常的吗?
我查看了,如果我理解正确的话,在通过多个线程训练神经网络时,没有数据访问同步(矩阵syn0、syn1、syn1neg的同步)。这是训练的正常做法,还是一个错误?也许与直觉相反,这是正常的。这方面的一项开创性工作是2011年的《霍格威德》论文: 其摘要: 随机梯度下降(SGD)是一种流行的算法,可以 在各种机器学习上实现最先进的性能 任务。一些研究人员最近提出了一些解决方案 并行化SGD,但都需要破坏性能的内存锁定 和同步。这项工作的目的是显示使用新的理论 SGD可以实现的分析、算法和实现 没有任何锁定。我们提出了一个名为Hogwild的更新方案,它允许处理器有可能访问共享内存 覆盖彼此的工作。我们证明了当关联的 优化问题是稀疏的,这意味着大多数梯度只更新 修改决策变量的一小部分,然后Hogwild实现 近似最优收敛速度。我们通过实验证明 Hogwild优于使用顺序锁定的替代方案 数量级 事实证明,同步访问比线程重写彼此的工作更能降低SGD的速度。。。一些结果甚至似乎暗示,在实践中,额外的“干扰”可能是优化过程的净收益Machine learning 当通过多个线程训练神经网络时,没有数据访问同步是正常的吗?,machine-learning,neural-network,nlp,word2vec,Machine Learning,Neural Network,Nlp,Word2vec,我查看了,如果我理解正确的话,在通过多个线程训练神经网络时,没有数据访问同步(矩阵syn0、syn1、syn1neg的同步)。这是训练的正常做法,还是一个错误?也许与直觉相反,这是正常的。这方面的一项开创性工作是2011年的《霍格威德》论文: 其摘要: 随机梯度下降(SGD)是一种流行的算法,可以 在各种机器学习上实现最先进的性能 任务。一些研究人员最近提出了一些解决方案 并行化SGD,但都需要破坏性能的内存锁定 和同步。这项工作的目的是显示使用新的理论 SGD可以实现的分析、算法和实现 没有