2012-09-15 46 views
7

Bunun önemsiz olduğunu düşünüyorum, ancak PyBrain belgelerinde, burada veya başka yerlerde yararlı bir şey bulmak için uğraştım. etkinleştirme değerleri

sorun

şudur:

Ben üç katmanlı (giriş, gizli, çıktı) ileri beslemeli ağ kurmuş ve PyBrain eğitilmiş var. Her katmanın üç düğümü vardır. Ağı yeni girdilerle etkinleştirmek ve gizli katmandaki düğümlerin sonuçtaki aktivasyon değerlerini saklamak istiyorum. Anlayabildiğim kadarıyla, net.activate() ve net.activateOnDataset(), yalnızca çıkış katmanı düğümlerinin etkinleştirme değerlerini döndürecek ve bir ağı etkinleştirmenin tek yolu olacaktır.

PyBrain ağının gizli katman aktivasyonlarına nasıl ulaşırım?

Ben örnek kod, bu durumda o kadar yardımcı olacaktır emin değilim, ama burada (cut-down eğitim seti ile) zaten bazıları aşağıda verilmiştir: Bu durumda

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 

, istenen işlevselliği yazdırmaktır Gizli katmanın aktivasyon değerlerinin listesi.

net['in'].outputbuffer[net['in'].offset] 
net['hidden0'].outputbuffer[net['hidden0'].offset] 

Tamamen the source code bakarak dayalı: Bu çalışması gerekir gibi

cevap

6

görünüyor.

+0

Bu mükemmel bir şekilde çalıştı. Çok teşekkürler. – dylanross