2012-09-15 10 views
7

मुझे लगता है कि यह छोटा होना चाहिए, लेकिन मुझे यहां पर या अन्यत्र, PyBrain दस्तावेज़ों में कुछ भी उपयोगी खोजने के लिए संघर्ष करना पड़ा है।एक पाइब्रेन नेटवर्क में सभी नोड्स के लिए सक्रियण मान

समस्या यह है:

मैं एक तीन परत (इनपुट, छिपे हुए, उत्पादन) feedforward नेटवर्क का निर्माण किया और PyBrain में प्रशिक्षित किया है। प्रत्येक परत में तीन नोड्स होते हैं। मैं उपन्यास इनपुट के साथ नेटवर्क को सक्रिय करना चाहता हूं और छुपा परत पर नोड्स के परिणामी सक्रियण मानों को संग्रहीत करना चाहता हूं। जहां तक ​​मैं कह सकता हूं, net.activate() और net.activateOnDataset() केवल आउटपुट परत नोड्स के सक्रियण मान लौटाएंगे और नेटवर्क को सक्रिय करने के एकमात्र तरीके हैं।

मैं एक PyBrain नेटवर्क की छिपी परत सक्रियण पर कैसे प्राप्त करूं?

मुझे यकीन है कि उदाहरण के कोड इस मामले में इतना मदद मिलेगी नहीं कर रहा हूँ, लेकिन यहाँ कुछ वैसे भी (एक कट नीचे प्रशिक्षण सेट के साथ):

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 

इस मामले में, वांछित कार्यशीलता एक मुद्रित करने के लिए है छिपी परत के सक्रियण मूल्यों की सूची।

उत्तर

6

ऐसा लगता है कि यह काम करना चाहिए:

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

शुद्ध रूप से the source code को देखकर पर आधारित है।

+0

यह पूरी तरह से काम किया। बहुत बहुत धन्यवाद। – dylanross

संबंधित मुद्दे