PyBrain 中的监督数据集和网络问题
SupervisedDataSet and Network issue in PyBrain
我最近发现了 PyBrain,所以我决定试一试。经过一段时间的测试后,我决定解决以下问题,以了解 PyBrain 内部的功能。
Given a list of 6 elements (each from 1 to 10), determine if there are more even numbers, more odd numbers or equal parts of number in the list.
我给了 PyBrain 50 个已解决的样本和 50 个未解决的样本,输出总是 1/3 的答案是正确的,实际上等于随机回答这个问题...所以我想我做错了什么.
我在论坛上看到我必须规范化我的数据。我这样做了,我得到了相同的结果。我将附上我的代码片段和到目前为止我尝试过的内容。
ds = SupervisedDataSet(6, 1)
....... Generating list of 6 elements, getting the mean and standard deviation to normalize data
for i in range(len(values)):
for j in range(6):
values[i][0][j] = (values[i][0][j]-mean[j]) / standard[j]
ds.appendLinked(values[i][0],values[i][1]) #values[i][0] contains a list of 6 elements, values[i][1] contains the answer for that list (0=EVEN, 1=SAME_PART, 2=ODD)
bias_network = buildNetwork(6,30,1, bias=True) # I've tried all the different networks on pybrain i think, but i don't really know the difference between anyone
trainer = BackpropTrainer(bias_network,ds,verbose=True)
trainer.trainEpochs(20) #I've tried 2, 20, 200 and until convergence, having same results...
for i in range (generate_rand):
......Generating new list l of elements
output = bias_network.activate(l)
我刚刚开始学习 AI 及其用途,如果我在这里做错了什么,请原谅。
嗯,我一直在研究神经网络,我发现你不能使用依赖于另一个结果的变量,因此,问题出在我的 "problem" 本身。我可以将其标记为已解决。
例如,您不能使用类似 "if X > Y and Y > W and W < Z and X > 10 then print 1" 的问题,其中 (X,Y,Z,W) 是同一神经网络的参数,至少我是这样学习的。
我会尽快将其标记为已解决。
我最近发现了 PyBrain,所以我决定试一试。经过一段时间的测试后,我决定解决以下问题,以了解 PyBrain 内部的功能。
Given a list of 6 elements (each from 1 to 10), determine if there are more even numbers, more odd numbers or equal parts of number in the list.
我给了 PyBrain 50 个已解决的样本和 50 个未解决的样本,输出总是 1/3 的答案是正确的,实际上等于随机回答这个问题...所以我想我做错了什么.
我在论坛上看到我必须规范化我的数据。我这样做了,我得到了相同的结果。我将附上我的代码片段和到目前为止我尝试过的内容。
ds = SupervisedDataSet(6, 1)
....... Generating list of 6 elements, getting the mean and standard deviation to normalize data
for i in range(len(values)):
for j in range(6):
values[i][0][j] = (values[i][0][j]-mean[j]) / standard[j]
ds.appendLinked(values[i][0],values[i][1]) #values[i][0] contains a list of 6 elements, values[i][1] contains the answer for that list (0=EVEN, 1=SAME_PART, 2=ODD)
bias_network = buildNetwork(6,30,1, bias=True) # I've tried all the different networks on pybrain i think, but i don't really know the difference between anyone
trainer = BackpropTrainer(bias_network,ds,verbose=True)
trainer.trainEpochs(20) #I've tried 2, 20, 200 and until convergence, having same results...
for i in range (generate_rand):
......Generating new list l of elements
output = bias_network.activate(l)
我刚刚开始学习 AI 及其用途,如果我在这里做错了什么,请原谅。
嗯,我一直在研究神经网络,我发现你不能使用依赖于另一个结果的变量,因此,问题出在我的 "problem" 本身。我可以将其标记为已解决。
例如,您不能使用类似 "if X > Y and Y > W and W < Z and X > 10 then print 1" 的问题,其中 (X,Y,Z,W) 是同一神经网络的参数,至少我是这样学习的。
我会尽快将其标记为已解决。