来自PyBrain神经网络的输出数据没有显示出多样性

时间:2015-06-15 21:34:17

标签: python neural-network pybrain

我正在尝试使用PyBrain开发神经网络,具有以下规范:

1。)3层总数

2.)36个输入神经元

3.输入神经元是线性的

4。)隐藏层是sigmoid

5.)输出层是线性的

6。)使用num_hidden_​​layer

设置隐藏神经元的数量

7.。)输出数量由num_output

控制

代码是:

import pybrain
import csv
from pybrain.datasets.supervised import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
import sys


with open(sys.argv[1], 'r') as csvfile:
    reader = csv.reader(csvfile)
    header = reader.next()
    dataset = SupervisedDataSet(len(header[:-1]), 1)
    test = []
    count = 1
    for line in reader:
        temp = []
        for e in line:
            temp.append(e.replace(',', ''))
        dataset.addSample(temp[:-1], temp[-1])

tstdata, trndata = dataset.splitWithProportion(0.25)
n = pybrain.FeedForwardNetwork()

num_inputs = len(header[:-1])
num_hidden_layer = 5
num_output = 1
inLayer = pybrain.LinearLayer(num_inputs)
hiddenLayer = pybrain.SigmoidLayer(num_hidden_layer)
outLayer = pybrain.LinearLayer(num_output)

n.addInputModule(inLayer)
n.addModule(hiddenLayer)
n.addOutputModule(outLayer)

in_to_hidden = pybrain.FullConnection(inLayer, hiddenLayer)
hidden_to_out = pybrain.FullConnection(hiddenLayer, outLayer)
n.addConnection(in_to_hidden)
n.addConnection(hidden_to_out)

n.sortModules()

trainer = BackpropTrainer(n, dataset=trndata, momentum = 0.1, verbose=True, weightdecay=0.01, learningrate=0.3)

for x in range(150):
    trainer.trainEpochs(10)

print n.activateOnDataset(tstdata)

我们的输入CSV有37列数值数据,最后一列是我们要训练NN预测的列。

当我们运行我们的NN时,输出只是:[[ - 9.43679663] [-9.43678922] [-9.43679759] [-9.43679592] [-9.43679396] [-9.43679395] [-9.43679737]。这是我们所期望的正确的球场数字(-8到-10),但没有变化。如果我们只读取数据的1/2,我们得到完全相同的输出。这是我们输入数据的错误(例如错误的分布或值范围)?或者这是我们的NN的问题?

0 个答案:

没有答案