如何在PyBrain中加载训练数据?

8 投票
2 回答
9952 浏览
提问于 2025-04-17 06:22

我正在尝试使用PyBrain进行一些简单的神经网络训练。不过,我不知道怎么从文件中加载训练数据。他们的网站上没有任何说明。我对数据的格式不在乎,因为我现在可以自己构建,但我需要把数据放在一个文件里,而不是手动一行一行地添加,因为我会有几百行数据。

2 个回答

2

你只需要这样使用一个pandas数据框

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

就可以了。

21

这是我怎么做的:

ds = SupervisedDataSet(6,3)

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

for line in tf.readlines():
    data = [float(x) for x in line.strip().split(',') if x != '']
    indata =  tuple(data[:6])
    outdata = tuple(data[6:])
    ds.addSample(indata,outdata)

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(verbose=True)

在这个例子中,神经网络有6个输入和3个输出。这个csv文件的每一行有9个值,用逗号分开。前6个值是输入值,最后3个值是输出。

撰写回答