Basit bir NN eğitimi için PyBrain'i kullanmaya çalışıyorum. Bilmediğim şey, eğitim verilerini bir dosyadan yüklemek. Web sitelerinde herhangi bir yerde açıklanmamıştır. Biçimi umursamıyorum çünkü şimdi oluşturabilirim, ancak satırlarca satır ekleyerek yerine bir dosyada yapmam gerekiyor, çünkü birkaç yüzlerce satır olacaktır. İştePyBrain'de antrenman verileri nasıl yüklenir?
cevap
nasıl yaptığımı geçerli: sinir ağı 6 giriş ve 3 çıkış vardır Bu durumda
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)
. Csv dosyasının her virgülle bir virgülle ayrılmış 9 değeri vardır. İlk 6 değer giriş değerleridir ve son üç çıktıdır.
ile nasıl kullanacaklarını söylüyorlar, bu çok teşekkür ederim. Her nöronun ağırlık değerlerine nasıl erişebilirim biliyor musun? –
Tek tek katmanlara şu şekilde erişebilirsiniz: giriş katmanı için n ['in'] ve çıkış için n ['çıkış'] ya da ilk gizli katman için n ['hidden0']. Bilmiyorum, ama sanırım katmanın düğümlerine bir şekilde erişebilirsiniz. dir (n ['in']) size – c0m4
yapabilecekleriniz hakkında bir ipucu vermelidir. Bunu nasıl yapacağımı bulamıyorum. Yeni bir soru yapacağım. Yardımın için teşekkürler. –
sadece pandalar diziler bu şekilde
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])
kullanmak ve gitmek iyidir.
Birkaç yüz satır, çok küçük bir takımınız olduğu ve performans konusunda endişelenmemesi gerektiği anlamına gelir. Ama PyBrain, NumPy dizilerini kabul etmiyor mu? –
Bilmiyorum, sadece kullanmaya başlıyorum, ama hiçbir yerde NumPy dizilerini NN:/ –