Czuję, że to powinno być trywialne, ale walczyłem, aby znaleźć coś przydatnego w dokumentacji PyBrain, tutaj lub gdziekolwiek indziej.wartości aktywacji dla wszystkich węzłów w sieci PyBrain
Problem jest taki:
Mam trzy warstwy (wejście, ukryte wyjścia) sieci feedforward zbudowany i wyszkolony w PyBrain. Każda warstwa ma trzy węzły. Chcę aktywować sieć nowymi wejściami i przechowywać wynikowe wartości aktywacji węzłów w ukrytej warstwie. O ile mogę powiedzieć, net.activate() i net.activateOnDataset() zwrócą tylko wartości aktywacji węzłów warstwy wyjściowej i są jedynymi sposobami aktywowania sieci.
Jak uzyskać dostęp do aktywacji ukrytej warstwy sieci PyBrain?
nie jestem pewien przykład kodu pomoże, że wiele w tym przypadku, ale oto niektóre zresztą (ze zbioru uczącego cut-dół):
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
W tym przypadku pożądana funkcjonalność jest wydrukować lista wartości aktywacji ukrytej warstwy.
To działało idealnie. Dziękuję bardzo. – dylanross