Ich denke, das sollte trivial sein, aber ich habe Mühe, etwas Nützliches in der PyBrain-Dokumentation zu finden, hier oder anderswo.Aktivierungswerte für alle Knoten in einem PyBrain-Netzwerk
Das Problem ist folgendes:
Ich habe eine dreischichtige (Eingang, versteckt, Ausgang) Vors Netzwerk in PyBrain aufgebaut und ausgebildet. Jede Ebene hat drei Knoten. Ich möchte das Netzwerk mit neuartigen Eingaben aktivieren und die resultierenden Aktivierungswerte der Knoten auf der versteckten Ebene speichern. Soweit ich das beurteilen kann, werden net.activate() und net.activateOnDataset() nur die Aktivierungswerte von Ausgabe-Layer-Knoten zurückgeben und sind die einzigen Möglichkeiten, ein Netzwerk zu aktivieren.
Wie bekomme ich die Aktivierung der versteckten Ebene eines PyBrain-Netzwerks?
Ich bin nicht sicher, Beispielcode, dass viel in diesem Fall helfen, aber hier ist einig sowieso (bei einem Cut-down-Trainingssatz):
from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer
net = buildNetwork(3, 3, 3)
dataSet = SupervisedDataSet(3, 3)
dataSet.addSample((0, 0, 0), (0, 0, 0))
dataSet.addSample((1, 1, 1), (0, 0, 0))
dataSet.addSample((1, 0, 0), (1, 0, 0))
dataSet.addSample((0, 1, 0), (0, 1, 0))
dataSet.addSample((0, 0, 1), (0, 0, 1))
trainer = BackpropTrainer(net, dataSet)
trained = False
acceptableError = 0.001
# train until acceptable error reached
while trained == False :
error = trainer.train()
if error < acceptableError :
trained = True
result = net.activate([0.5, 0.4, 0.7])
print result
In diesem Fall gewünschte Funktionalität ist ein drucken Liste der Aktivierungswerte der versteckten Ebene.
Dies funktionierte perfekt. Vielen Dank. – dylanross