Я написал программу для тренировки своей сети с использованием pybrain. У меня есть 104 входа и 7 выходов в каждой строке файла поезда. Я создал один скрытый слой длиной 50. Сеть написана в файле .xml. Но я не знаю, как написать окончательные веса и предубеждения в файл, чтобы я мог рассчитать точность и отзыв. Может ли кто-нибудь помочь?Есть ли способ написать окончательные веса (после окончания всех эпох) с использованием пирамина?
from pybrain.datasets import SupervisedDataSet
from pybrain.datasets import ClassificationDataSet
from pybrain.utilities import percentError
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.structure.modules import SoftmaxLayer
from pybrain.tools.xml.networkwriter import NetworkWriter
from pybrain.tools.xml.networkreader import NetworkReader
ds = SupervisedDataSet(104,7)
tf = open('neural_net_feature.txt','r')
for line in tf.readlines():
data = [float(x) for x in line.strip().split(',') if x != '']
indata = tuple(data[:104])
outdata = tuple(data[104:])
ds.addSample(indata,outdata)
n=buildNetwork(ds.indim,50,ds.outdim,hiddenclass=SigmoidLayer,outclass=SigmoidLayer)
NetworkWriter.writeToFile(n, 'filename.xml')
n = NetworkReader.readFrom('filename.xml')
t = BackpropTrainer(n,learningrate=0.01,momentum=0.5,verbose=True)
t.trainUntilConvergence(dataset=ds, maxEpochs=None, verbose=False , continueEpochs=10, validationProportion=0.10)
t.testOnData(verbose=True)
Благодаря
Как @Chase Roberts ответил, что я использовал [http://stackoverflow.com/questions/8150772/pybrain-how-to-print-a-network-nodes-and-weights]. Число ** in_to_hiddens ** в моей сети составляет 5200 (слишком много), это написано так: in_to_hidden [1.55300577 -0.62533809 -0.08147982 ..., 1.29706926 0.50138988] Но мне НУЖНО РЕАЛЬНЫЕ ВЕСЫ, а не ** НЕКОТОРЫЕ DOTS **. Может ли кто-нибудь помочь? –