8

我正在尝试使用 PyBrain 进行一些简单的 NN 训练。我不知道该怎么做是从文件中加载训练数据。他们的网站上的任何地方都没有解释。我不关心格式,因为我现在可以构建它,但我需要在文件中完成它而不是手动逐行添加,因为我将有数百行。

4

2 回答 2

21

这是我的做法:

ds = 监督数据集(6,3)

tf = open('mycsvfile.csv','r')

对于 tf.readlines() 中的行:
    data = [float(x) for x in line.strip().split(',') if x != '']
    indata = 元组(数据[:6])
    outdata = 元组(数据[6:])
    ds.addSample(输入数据,输出数据)

n = buildNetwork(ds.indim,8,8,ds.outdim,recurrent=True)
t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True)
t.trainOnDataset(ds,1000)
t.testOnData(详细=真)

在这种情况下,神经网络有 6 个输入和 3 个输出。csv 文件每行有 9 个值,以逗号分隔。前 6 个值是输入值,后三个是输出值。

于 2011-11-15T20:54:35.797 回答
2

您只需以这种方式使用pandas DataFrame

import pandas as pd

dataset = SupervisedDataSet(6,3)

df = pd.read_csv('mycsvfile.csv')

dataset.setField('input', df.values[:,:6]) # this sets the features

y=[[x] for x in df.values[:,:6])] # Do this to avoid IndexError: tuple index out of range
                                  # as the target field should be a list of lists, 
                                  # even if its shape is 1

dataset.setField('target', y)     # this set the target[s] field[s]
del df,y

你很高兴。

于 2017-10-01T18:07:01.650 回答