Neural network 神经网络:计算权重增量是一个瓶颈
在分析了我的神经网络代码之后,我意识到,已经给出梯度的计算网络中每个弧的权重变化的方法(包括55%的样本)是瓶颈(包括55%)Neural network 神经网络:计算权重增量是一个瓶颈,neural-network,Neural Network,在分析了我的神经网络代码之后,我意识到,已经给出梯度的计算网络中每个弧的权重变化的方法(包括55%的样本)是瓶颈(包括55%) 有什么技巧可以有效地计算这些值吗?这是正常的行为。我假设您正在使用迭代过程来求解每个进化步骤的权重(例如反向传播?)。如果神经元数量较多且训练(回溯测试)算法较短,则在神经网络训练期间,此类权重变异将消耗较大的计算时间,这是正常的 你是用一个简单的XOR问题或类似问题得到这个结果的吗?如果是这样,您可能会发现,如果您开始解决更复杂的问题(如多维数组中的模式检测、图像处理
有什么技巧可以有效地计算这些值吗?这是正常的行为。我假设您正在使用迭代过程来求解每个进化步骤的权重(例如反向传播?)。如果神经元数量较多且训练(回溯测试)算法较短,则在神经网络训练期间,此类权重变异将消耗较大的计算时间,这是正常的 你是用一个简单的XOR问题或类似问题得到这个结果的吗?如果是这样,您可能会发现,如果您开始解决更复杂的问题(如多维数组中的模式检测、图像处理等),那么这些函数将开始消耗微不足道的计算时间 如果您正在评测,我建议您评测一个更接近神经网络设计目的的问题(我猜您设计它不是为了解决XOR或玩tic-tac-toe)你可能会发现优化代码,比如
-rate*gradient+momentum*previous_delta-decation*rate*weight
,或多或少都是浪费时间,至少这是我的经验
如果您确实发现这段代码在实际应用程序中是计算密集型的,那么我建议您尝试通过结构更改来减少这段代码的执行次数。神经网络优化是一个丰富的领域,我不可能从如此广泛的问题中为您提供有用的建议,但我要说的是,如果您的程序异常缓慢,您不可能通过修补如此低级的代码看到显著的改进。然而,我将根据自己的经验提出以下建议:
static
循环请注意,这是对我解释为非技术性问题的非技术性回答。这是正常行为。我假设您正在使用迭代过程来求解每个进化步骤的权重(例如反向传播?)。如果神经元数量较多且训练(回溯测试)算法较短,则在神经网络训练期间,此类权重变异将消耗较大的计算时间,这是正常的 你是用一个简单的XOR问题或类似问题得到这个结果的吗?如果是这样,您可能会发现,如果您开始解决更复杂的问题(如多维数组中的模式检测、图像处理等),那么这些函数将开始消耗微不足道的计算时间 如果您正在评测,我建议您评测一个更接近神经网络设计目的的问题(我猜您设计它不是为了解决XOR或玩tic-tac-toe)你可能会发现优化代码,比如
-rate*gradient+momentum*previous_delta-decation*rate*weight
,或多或少都是浪费时间,至少这是我的经验
如果您确实发现这段代码在实际应用程序中是计算密集型的,那么我建议您尝试通过结构更改来减少这段代码的执行次数。神经网络优化是一个丰富的领域,我不可能从如此广泛的问题中为您提供有用的建议,但我要说的是,如果您的程序异常缓慢,您不可能通过修补如此低级的代码看到显著的改进。然而,我将根据自己的经验提出以下建议:
static
循环请注意,这是对我解释为非技术性问题的非技术性回答。您应该包括代码,瓶颈通常与实现无关。当您说“55%包含样本”时,您的意思是什么?您应该包括代码,瓶颈通常是与实现无关的——当你说“包含55%的样本”时,你是什么意思?是的,你是对的——这是一个非技术性的问题:我不想包含代码,因为它太大,无法解释问题