Neural network 用梯度检验法检验神经网络的正确性

Neural network 用梯度检验法检验神经网络的正确性,neural-network,pybrain,gradient-descent,Neural Network,Pybrain,Gradient Descent,我编写此伪代码是为了检查简单网络的正确性(根据文档),但每当我将输入数增加到30以上时,就会出现以下错误: (“不正确的渐变”,数组[…]) (“模块不正确:”,全连接“全连接-7”:“偏差”->hidden0',[…]) 这两个案例中的方括号都包含一个巨大的数组,由于大小原因,我无法在这里发布。在我的实际代码中,我试图解决一个有62个输入的分类问题,因此我需要构建一个能够处理这么多输入的网络。我还尝试增加隐藏层的数量,以及隐藏层中神经元的数量(我甚至尝试了50个),但这没有帮助。代码如下: i

我编写此伪代码是为了检查简单网络的正确性(根据文档),但每当我将输入数增加到30以上时,就会出现以下错误:

(“不正确的渐变”,数组[…])

(“模块不正确:”,全连接“全连接-7”:“偏差”->hidden0',[…])

这两个案例中的方括号都包含一个巨大的数组,由于大小原因,我无法在这里发布。在我的实际代码中,我试图解决一个有62个输入的分类问题,因此我需要构建一个能够处理这么多输入的网络。我还尝试增加隐藏层的数量,以及隐藏层中神经元的数量(我甚至尝试了50个),但这没有帮助。代码如下:

import pybrain
from pybrain.tools.shortcuts import buildNetwork  
from pybrain.tests.helpers import gradientCheck

n = buildNetwork(40,10, 1)
n.randomize()
gradientCheck(n)

我不知道它是否与此相关,不过,我现在有900个数据样本,我预计很快还会有1000个样本。

作为一项调查测试,如果网络规模相同,但数据集要小得多,会发生什么情况?你也会犯同样的错误吗?或者它仅仅是大于30个输入和900个数据案例的组合?我在这里发布的错误是针对伪代码的,它不需要数据集。我猜n.randomize()命令必须随机初始化网络。在我的计算机上,输入数达到19时,我就会得到错误。考虑到您和我的计算机上存在不同的问题阈值,我认为这不是代码本身的问题,但可能是与使用了多少内存有关的问题?只是猜测而已。在另一台电脑上试一下,看看你是否得到了不同的结果,来检验这个理论。