2011-11-15 5 views
8

私はいくつかの簡単なNNトレーニングのためにPyBrainを使用しようとしています。どのようにすればよいかわからないのは、ファイルからトレーニングデータを読み込むことです。どこのウェブサイトでも説明されていません。私はフォーマットを気にしないので、今構築することができますが、行数を手動で追加するのではなく、ファイルで行う必要があります。何百行もあるからです。ここでPyBrainで学習データを読み込む方法は?

+1

数百行は、あなたが非常に小さいセットを持っていることを意味し、パフォーマンスについて心配するべきではありません。しかし、PyBrainはNumPy配列を受け入れるだけではありませんか? –

+0

私はそれを使用し始めましたが、NNでNumPy配列を使用する方法についてはどこにも言及していません。/ –

答えて

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つは出力です。

+0

これは素晴らしいことです。ありがとう、ありがとう。すべてのニューロンの重み値にどのようにアクセスできますか? –

+1

入力レイヤーの場合はn ['in']、出力の場合はn ['out']、最初の隠れレイヤーの場合はn ['hidden0']のように個々のレイヤーにアクセスできます。私は知っていませんが、私はあなたが層のノードにいつでもアクセスできると思います。 dir(n ['in'])は、できることのヒントを与える必要があります – c0m4

+0

私はそれを行う方法が見つかりません。私は新しい質問をします。ご協力ありがとうございました。 –

1

あなたは、このよう

import pandas as pd 

ds = SupervisedDataSet(6,3) 

dataset = pd.read_csv('mycsvfile.csv','r', delimiter=',',skiprows=1) 
ds.setfield('input' dataset.values[:,0:6]) 
ds.setfield('target', dataset.values[:,-2:-1]) 

パンダアレイを使用し、あなたが行ってもいいです。

関連する問題