Creo que esto debería ser trivial, pero he tenido problemas para encontrar algo útil en la documentación de PyBrain, aquí o en otro lugar.valores de activación para todos los nodos en una red PyBrain
El problema es el siguiente:
Tengo tres capas (entrada, oculta, de salida) a la red de alimentación directa construido y entrenado en PyBrain. Cada capa tiene tres nodos. Quiero activar la red con entradas nuevas y almacenar los valores de activación resultantes de los nodos en la capa oculta. Por lo que puedo decir, net.activate() y net.activateOnDataset() solo devolverán los valores de activación de los nodos de capa de salida y son las únicas formas de activar una red.
¿Cómo puedo obtener las activaciones de capa oculta de una red PyBrain?
no estoy seguro de código de ejemplo ayudará mucho en este caso, pero aquí es un poco de todos modos (con un conjunto de entrenamiento corte hacia abajo):
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
En este caso, la funcionalidad deseada es imprimir una lista de los valores de activación de la capa oculta
Esto funcionó perfectamente. Muchas gracias. – dylanross